DataGrid控件DataGrid控件位于System.Windows.Controls.Data.dll程序集,在使用前应声明sdk名称空间前缘:xmlns:sdk="http://sc
DataGrid控件
DataGrid控件位于System.Windows.Controls.Data.dll 程序集,在使用前应声明sdk名称空间前缘:
1、使用数据填充DataGrid控件:只需将控件的ItemsSource属性绑定到集合对象上即可;也可以将集合对象在后置代码赋值到该属性上。如下面的示例:
1)绑定方式:
<sdk:DataGrid Name="dataGrid"
ItemsSource="{Binding ElementName=product, Path=Data}" />
注:绑定到另一个控件需要使用ElementName属性;
2)赋值方式:
dataGrid.ItemsSource = collection;
2、DataGrid控件列属性配置
DataGrid的每一列都需要通过Columns属性进行定义,在Silverlight中有DataGrid控件有三种列类型:
DataGridTextColumn:只读模式下显示TextBlock样式,可编辑模式下显示TextBox样式;
DataGridCheckBoxColumn:显示为CheckBox样式;
DataGridTemplateColumn:自定义列样式,可以通过设置两种数据模板:CellTemplate与CellEditingTemplate来实现 。
下面代码是上述三种列属性的示例:
简化设置列属性的方法是使用DomainDataSource控件先生成列属性框架,然后再根据需要进行适当的修改;如果不想使用DomainDataSource作为数据源,可以将ItemsSource属性的绑定调整为其他集合对象;
3、在DataGrid控件的列上显示图片:注意Silverlight只支持Bmp,JPG,PNG等位图格式,不支持Gif格式,如果要想使用Gif格式或其他byte数组格式,需要进行类型转换
4、创建计算列:可以使用类似的数据转换的方法实现计算列,然后将转换器的输出结果作为计算结果显示在计算列上,方法与显示图片类似。
5、在DataGrid中编辑数据:DataGrid控件设计的初衷就是为了编辑数据,因此默认单元格都是可以编辑的,如果想要禁用该模式,设置IsReadOnly属性为True。
6、DataGrid附加内置行为:排序(默认提供,可以对任意列进行顺序或逆序排序),分组(需要与绑定数据集合相配合)、列宽调整(类似于Excel)、列位置拖动调整,这些行为默认都是打开的,也可以关闭;关闭方法如下:
功能 | 控件属性 | 关闭该属性的设置值 |
排序 | CanUserSortColumns | False |
自动调整尺寸 | CanUserResizeColumns | False |
列位置重排 | CanUserReorderColumns | False |
ListBox控件的使用
1、使用数据填充ListBox:与DataGrid控件类似:
<ListBox Name="productsList"
ItemsSource="{Binding ElementName=productSummaryDDS, Path=Data}" />
productsList.ItemsSource = collection;
区别:ListBox控件还有一个Items属性,如果控件的ItemsSource属性没有绑定到集合上,就可以在后置代码中使用该集合类添加或删除列表项。当然这很少使用,因为ItemsSource使用起来很方便;
2、ListBox的数据模板
示例如下:
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。