Windows 8开发入门(二十) Windows 8中的GridView使用(二)

Windows 8中的GridView使用(二)和DataTemplateSelector

在本文中所讲述内容的实例仍然沿用于上篇文章,有什么疑惑可以参考上篇文章。

一 GroupStyle 在GridView控件中我们可以对数据进行分组显示,通过对GridView的GroupStyle进行控制,分别设置 GroupStyle.HeaderTemplate和GroupStyle.Panel。如下代码:

<GridView.GroupStyle>
                <GroupStyle>
                    <GroupStyle.HeaderTemplate>
                        <DataTemplate>
                            <Grid Margin="1,0,0,6">
                                <Button
                                    AutomationProperties.Name="组名称"
                                    Content="{Binding GroupTitle}"/>
                            </Grid>
                        </DataTemplate>
                    </GroupStyle.HeaderTemplate>
                    <GroupStyle.Panel>
                        <ItemsPanelTemplate>
                            <VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,50,0"/>
                        </ItemsPanelTemplate>
                    </GroupStyle.Panel>
                </GroupStyle>
            </GridView.GroupStyle>

二 DataTemplateSelector 在不同的组之间我们想使 用不同的样式进行显示,在这里我们可以继承重写DataTemplateSelector类编写并且根据后台数据选择相应的 样式模版进行呈现。

在之前代码的基础上我们需要做以下工作:

1.编写一个类继承于 DataTemplateSelector

public class TemplateSelector : DataTemplateSelector
    {
        /// <summary>
        /// 第一种文本显示模版
        /// </summary>
        public DataTemplate TextBoxTemplate { get; set; }
        /// <summary>
        /// 第二种图片为主显示模版
        /// </summary>
        public DataTemplate ImageTemplate { get; set; }
        /// <summary>
        /// 核心方法:根据不同的数据源类型返回给前台不同的样式模版
        /// </summary>
        /// <param name="item"></param>
        /// <param name="container"></param>
        /// <returns></returns>
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            DataModel model = item as DataModel;
            string typeName = model.MainModel.Name;
            if (typeName == typeof(TextBox).Name)//根据数据源设置的数据显示模式返回前台样式模版
            {
                return TextBoxTemplate;
            }
            if (typeName == typeof(Image).Name)
            {
                return ImageTemplate;
            }
            return null;
        }
    }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索gridview
, 样式
, typename
, gridview分组显示
, datatemplate
, 模版
, 不同
GridView实例开发
windows开发入门、windows驱动开发入门、安卓开发gridview、安卓开发gridview使用、android开发gridview,以便于您获取更多的相关知识。

时间: 2024-10-23 01:18:56

Windows 8开发入门(二十) Windows 8中的GridView使用(二)的相关文章

Windows 8开发入门(十二) windows 8的文件管理 1

File创建和String Stream Buffer方式读写 在本文中我们将学习Windows 8中的文件创建和多种读写方式以及设置文档库访问权限和文件类型的访问. 当然我们需要做以下准备工作: 首先:设置程序允许访问的文件位置为:"库\文档",设置方法:点击"Package.appxmanifest ",然后选择"功能"选项卡,在功能列表中勾选"文档库访问".如下图: 开发入门(十二) windows 8的文件管理 1-w

Windows 8开发入门(十九) Windows 8中的GridView使用(一)

在本文中我们将讲述初步使用GridView以展示各种信息. 首先我们看看GridView的重要属性: SelectionMode:设置选择模式(None,Single,Multiple) IsItemClickEnabled:是否允许有 选择项点击事件 ItemsSource:数据项的数据源 ItemTemplate:数据项的展示模板 SelectedItem:选择项的内容 然后我们看看如何使用GridView. 1.首先设置数据源实体 类以及数据源提供源. public class DataM

Windows 8开发入门(十五) Windows 8中的4种视图状态和锁屏通知

在Windows 8中的应用程序在默认打开时是全屏的,此时我们如果需要看其他应用程序就只能回到Metro 起 始页面重新选择其他程序吗?这样就会很麻烦,所以Windows 8应用程序有4种视图状态 (ApplicationViewState),类似于普通窗口程序的最小化.最大化一样可以看到其他应用程序同时允许多个应 用程序的使用. 视图状态切换方法:用鼠标点击屏幕最上方按住不放往右或者往左拖动.移动中间间 隔栏等等. ApplicationViewState: // 摘要: // 当前应用程序的

Kinect for Windows SDK开发入门(十六)面部追踪上

在前面一篇文章中,我们使用Emgu来识别人的脸部,当时的Kinect SDK版本是1.0,五月份发布1.5版本的SDK之后,我们就能够直接使用Kinect实现人脸识别,而不需要借助第三方类库. SDK1.5中新增了人脸识别类库:Microsoft.Kinect.Toolkit.FaceTracking使得在Kinect中进行人脸识别变得简单,该类库的源代码也在Developer Toolkit中.在Developer Toolkit中也自带人脸识别的例子,您也可以打开运行或者查看源代码. 开发入

Windows 8开发入门(十八)windows 8开发模拟器和程序中关联文件类型

本文将讲解两个内容,1.Windows 8 开发模拟器的使用.2.程序中设置关联文件类型. 一. Windows 8 开发模拟器的使用 1.在VS2012中自带有Windows 8开发模拟器,我们选择VS界面中的调试按 钮从"本地计算器"改选为"Simulater"模拟器即可,如下图: 2.点击"Simulator"按钮即可弹出以下界面 3.此时我们可以看到模拟器上面有很多按钮这些按钮的功能有模拟单点触摸.多点触摸.旋转设备等操作 .我们在这里可

Windows 8开发入门(十六) Windows 8的右键菜单

在Windows 8中的控件中有TextBox等输入控件的ContextMenuOpening事件和Button等非输入控件的 RightTapped事件. 本文中将讲述者两个事件的用法.这两个事件的 PopupMenu是右键弹出菜单 的具体类. 首先我们看具体菜单类的实例化和获取项目代码 /// <summary> /// 设置右键点击点击具体处理细节 /// </summary> /// <param name="sender"></par

Windows 8开发入门(十四) windows 8中粘贴板(剪切板)的使用

在Windows 8中我们的粘贴板分别保存4种信息:文本.图片.网页.文件.在本文中我们将分别复制和粘 贴这4种元素,当然你也可以在外部复制这4种元素,然后在程序中粘贴出来. DataPackage:包含用户 希望与另一个应用程序交换的数据 //设置一个中转变量保存用户的值 DataPackage dp = new DataPackage(); 第一:我们来看看复制和粘贴文本的后台处理代码 . //<!--复制文本--> private void CopyText_Click(object s

Windows 8开发入门(十)基本变换和矩阵变换以及AppBar应用程序栏

在Windows 8中有几种基本变换和矩阵变换和Silverlight中的使用方法都是一样. 包括: RotateTransform:旋转变换 ScaleTransform:缩放变换 SkewTransform:倾斜变换 TranslateTransform:移动变换 TransformGroup:变换组 MatrixTransform:矩阵变换 这些变换的意义和使用都可以看我之前写过的两篇文章: Silverlight实用窍门系列: 53.Silverlight中的5种基本变换RotateTr

Windows 8风格应用开发入门 三十五 触控输入

Windows 8设备通常具有多点触摸屏,用户可以同时使用多个手指来进行不同的输入交互,如点击. 拖动或收缩等手势操作.另外Windows 8中将触摸.鼠标和笔/触笔交互是作为指针输入进行接收.处理 和管理. 一.手势处理 首先我们来汇总一下Windows 8中常用的手势都有哪些. 开发入门 三十五 触控输入-windows10触控板手势"> 1,点击:用一个手指触摸屏幕,然后抬起手指. 2,长按:用一个手指触摸屏幕并保持不动 . 3,滑动:用一个或多个手指触摸屏幕并向着同一方向移动. 4