DataGrid控件与ListBox控件,你更青睐于哪种?
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:itlead 阅读 2812
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的数据模板
  
  示例如下:
 
   
 
 
 
 
 
 
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。
  
  
  
  
联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2