DataGrid行详细信息的绑定--DataGrid.RowDetailsTe(转载)
在Silverlight中的DataGrid控件使用中我们想点击其中一行并且看这一行的详细信息应该如何做呢?而且这个详细信息是多行的数据,而非简单的几个属性。 在这里我们使用DataGrid.RowDetailsTemplate来设置或者获取行详细信息。首先我们准备一个DataGrid命名为A,设置其RowDetailsVisibilityMode=VisibleWhenSelected (行详细信
在Silverlight中的DataGrid控件使用中我们想点击其中一行并且看这一行的详细信息应该如何做呢?而且这个详细信息是多行的数据,而非简单的几个属性。
在这里我们使用DataGrid.RowDetailsTemplate来设置或者获取行详细信息。首先我们准备一个DataGrid命名为A,设置其RowDetailsVisibilityMode="VisibleWhenSelected" (行详细信息模板的显示模式是当这行被选中的时候展开这行的详细信息。)然后再为A设置DataGrid.RowDetailsTemplate模板,并且在这个模板中添加一个DataGrid命名为B,这就是前台的XAML代码,在后台中我们设置一个实体集AList绑定到A的DataGrid,然后在AList实体集中有一个属性是BList,这个就是多行的详细信息。将BList详细信息字段绑定到B的DataGrid控件的ItemsSource即可。
下面我们来看看这个简单的应用技巧的Xaml代码如下:
<!--这里是第一个DataGrid,其DataGrid.RowDetailsTemplate模板会绑定另外一个DataGrid以显示其详细信息-->
<sdk:DataGrid x:Name="gridEmployee" CanUserReorderColumns="False" CanUserSortColumns="False"
RowDetailsVisibilityMode="VisibleWhenSelected"
HorizontalAlignment="Center" ScrollViewer.VerticalScrollBarVisibility="Auto"
Height="200" AutoGenerateColumns="False" Width="422" VerticalAlignment="Center">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Width="150"
Header="用户名"
Binding="{Binding UserName}"/>
<sdk:DataGridTextColumn Width="150"
Header="用户密码"
Binding="{Binding UserPwd}"/>
</sdk:DataGrid.Columns>
<sdk:DataGrid.RowDetailsTemplate>
<DataTemplate>
<!--这里是第二个DataGrid显示详细信息-->
<sdk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding UserDetailInfomation}"
HeadersVisibility="None">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Width="100"
Header="地址"
Binding="{Binding UserAddress}"/>
<sdk:DataGridTextColumn Width="100"
Header="城市"
Binding="{Binding UserCity}"/>
<sdk:DataGridTextColumn Width="100"
Header="国籍"
Binding="{Binding UserCountry}"/>
<sdk:DataGridTextColumn Width="100"
Header="类型"
Binding="{Binding UserState}"/>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</DataTemplate>
</sdk:DataGrid.RowDetailsTemplate>
</sdk:DataGrid>
</Grid>
然后我们来看看他的数据源的Xaml.cs代码如下:
{
public MainPage()
{
InitializeComponent();
this.gridEmployee.ItemsSource = new UserInfo().GetEmployeeData();
}
}
/// <summary>
/// 用户信息
/// </summary>
public class UserInfo
{
public string UserName { get; set; }
public string UserPwd { get; set; }
/// <summary>
/// 用户详细信息
/// </summary>
public List<UserDetailInfo> UserDetailInfomation{get;set;}
public UserInfo()
{ }
/// <summary>
/// 获取用户信息的实例
/// </summary>
/// <returns></returns>
public List<UserInfo> GetEmployeeData()
{
List<UserInfo> employees = new List<UserInfo>();
employees.Add
(
new UserInfo
{
UserName = "李伟",
UserPwd = "1333821",
UserDetailInfomation = new List<UserDetailInfo>()
{
new UserDetailInfo()
{
UserAddress="四川省成都市",
UserCity="成都",
UserCountry="中国",
UserState="当前所在地"
},
new UserDetailInfo()
{
UserAddress="四川省内江市",
UserCity="内江",
UserCountry="中国",
UserState="出生地"
}
}
});
employees.Add
(
new UserInfo
{
UserName = "Json",
UserPwd = "json282",
UserDetailInfomation = new List<UserDetailInfo>()
{
new UserDetailInfo()
{
UserAddress="广东省广州市",
UserCity="广州",
UserCountry="中国",
UserState="当前所在地"
},
new UserDetailInfo()
{
UserAddress="广东省茂名市",
UserCity="茂名",
UserCountry="中国",
UserState="出生地"
}
}
});
employees.Add
(
new UserInfo
{
UserName = "刘敏",
UserPwd = "motorola",
UserDetailInfomation = new List<UserDetailInfo>()
{
new UserDetailInfo()
{
UserAddress="湖南省长沙市",
UserCity="长沙",
UserCountry="中国",
UserState="当前所在地"
},
new UserDetailInfo()
{
UserAddress="湖南省长沙市",
UserCity="长沙",
UserCountry="中国",
UserState="出生地"
}
}
});
return employees;
}
}
/// <summary>
/// 用户详细信息的实体
/// </summary>
public class UserDetailInfo
{
public string UserAddress { get; set; }
public string UserCity { get; set; }
public string UserState { get; set; }
public string UserCountry { get; set; }
}
最后我们来看看它的运行效果,如果需要源码请点击SLDataGridRowDetail.zip下载。


本文来自程兴亮的博客,原文地址:http://www.cnblogs.com/chengxingliang/archive/2011/07/22/2112895.html
DataGrid行详细信息的绑定--DataGrid.RowDetailsTe(转载)的更多相关文章
- Silverlight实用示例 - DataGrid行详细信息的绑定DataGrid.RowDetailsTemplate
Silverlight实用示例 - DataGrid行详细信息的绑定DataGrid.RowDetailsTemplate 2012-12-28 21:04 来源:博客园 作者:chengxingli ...
- easyui datagrid行合并
easyui datagrid行合并 合并方法 /** * EasyUI DataGrid根据字段动态合并单元格 * 参数 tableID 要合并table的id * 参数 colList 要合并的列 ...
- easyUI 展开DataGrid里面的行显示详细信息
http://blog.csdn.net/yanghongchang_/article/details/7854156原著 datagrid 可以改变它的view(视图)去显示不同的效果.使用详细视图 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第七章 MVVM初体验-在DataGrid行末添加按钮
原文:[全面解禁!真正的Expression Blend实战开发技巧]第七章 MVVM初体验-在DataGrid行末添加按钮 博客更新较慢,先向各位读者说声抱歉.这一节讲解的依然是开发中经常遇到的一种 ...
- WPF设置DataGrid行内容高度自适应 与 TextBox/TextBlock内容高度自适应
WPF设置DataGrid行内容高度自适应 TextBox/TextBlock内容高度自适应 参考: DataGrid 控件中的调整大小选项: http://msdn.microsoft.com/ ...
- WPF Datagrid 动态生成列 并绑定数据
原文:WPF Datagrid 动态生成列 并绑定数据 说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码) 数据来源于左侧列 左侧列数据源 当然num1 属于临时的dome使用 可 ...
- Easyui datagrid行内【添加】、【编辑】、【上移】、【下移】
前几天项目中遇到一个需求用到了Easyui datagrd行内添加和编辑数据,同时对行内数据上移下移,所以对这几个功能做个总结. 1.首先大概说下这几个功能里用到的主要方法,行内添加数据主要是添加列的 ...
- 在命令行cmd 下,输入dxdiag 查看关于电脑许多硬件的详细信息
输入命令就可以查看本机的很多硬件的详细信息: 在命令行cmd 下,输入dxdiag 查看关于电脑许多硬件的详细信息
- WPF DataGrid某列使用多绑定后该列排序失效,列上加入 SortMemberPath 设置即可.
WPF DataGrid某列使用多绑定后该列排序失效 2011-07-14 10:59hdongq | 浏览 1031 次 悬赏:20 在wpf的datagrid中某一列使用了多绑定,但是该列排序失 ...
随机推荐
- android Timer and TImerTask
android Timer and TImerTask Caused by: java.lang.IllegalStateException: TimerTask is scheduled alrea ...
- MATLAB light material lighting
clf;[X,Y,Z]=sphere(40);colormap(jet)subplot(1,2,1),surf(X,Y,Z),axis off square,shading interplight(' ...
- WCF 服务的ABC之绑定(六)
绑定 Binding 绑定是开发人员控制WCF程序与其他消息交互的主要手段.从功能上看,绑定创建了通道工厂惑通道侦听器的堆栈对象.绑定直接惑间接创建的对象是WCF实现各种消息功能(例如,传输.安全性. ...
- linux的7种运行级别
Linux有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多用户 ...
- Android 与 Webservice 的快速保存
前面写了一篇android对sqllite的快速保存博客,今天我们来看看android与webservice的交互,相信很多有经验的人自然就想到了soap.但是如果在小型项目中,具有大材小用之嫌.实际 ...
- 【linux】学习笔记
2014.06.07 开机无法上网,每次都得 $ sudo ifconfig eth1 up $ sudo dhclient eth1 后面发现原来是网卡没设置开机启动 编辑/etc/sysconfi ...
- C#中Delegate
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C# CacheHepler Class
internal class CacheHelper { /// <summary> /// Insert value into the cache using /// appropria ...
- hadoop自动安装的脚本与步骤
最近要在10几台机器上安装hadoop.对于这种繁复而重复的工作,一步步的打命令行,对于程序员来说是一件不能忍的事情.所以我就琢磨着怎么写一个脚本来自动安装hadoop. 任务: 在10几台机器上中的 ...
- selenium+python find_element_by_css_selector方法使用
1.通过类class获取 比如如下代码 <h1 class="important"> This heading is very important. </h1&g ...