Silverlight 2.0中关于DataGrid使用CheckBox选择行

今天想使用Silverlight中的DataGrid控件来做一个跟.NET Framework2.0中GridView一样的使用Checkbox选择行的效果,但是看了半天的文档,也没有发现跟GridView开发有相似之处的地方。上网搜索也没有找到一点提示。

没办法,只有自己来研究。

由于在Silverlight 2.0提供了双向绑定的功能——也就是在操作用户控件时(比如:Checkbox),如果你将Checkbox绑定到了数据源中的一个字段,那么在点击Checkbox的时候,它会自动更新该字段的值。根据这个原理,我就有了如下想法:

建立类SourceModel包含原数据源表中的所有字段的属性;

Code

 

建立类ListInformation包含除数据源表中的字段意外,还要加一个Allow属性;

Code

 

由于Silverlight 2.0中没有了ArrayList、Hashtable等集合类,现在只有一个List<>及泛型可以使用。没办法,凑合着用吧,希望以后能够有更多的集合类可以使用。

现在使用List<>建立一个可以储存数据源的地方。

public static List<ListInformation> pageItems = null;

 

 这样将数据源中的数据读出来后,然后添加放到List<ListInformation> pageItems这个临时集合中。

 程序代码看下面:

Page.xaml.cs

Page.xaml

 

注意:<data:DataGridCheckBoxColumn x:Name="AllowCheckbox" Binding="{Binding Allow, Mode=TwoWay}" Width="50"></data:DataGridCheckBoxColumn>这一段中的Binding="{Binding Allow, Mode=TwoWay}"一定要采用Mode=TwoWay.目的是为了能够自动交互数据。

运行效果:


 我在实验的过程中,发现这么做好像效率有点低,但是面对数据量不太大的时候,还是可以使用这种办法的。

如果哪位能够有更好的办法,请赐教。

 源代码下载: /Files/lorn/SLAPPDemo.rar

posted @   Lorn  阅读(5975)  评论(6编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示