WPF中实现ListView控件绑定到多个数据源的并集
2009-02-08 00:05
295 查看
WPF里面的数据绑定功能很强大,让你可以用一种非常直观的方式显示和编辑数据,但是仍然会有一些地方让人容易混淆,例如将ListView控件绑定到多个数据源的并集上。
例如你的窗口里面有三个ListView控件A、B、C,A和B分别绑定到整数集合CollectionA和集合CollectionB,然后你想将C绑定到CollectionA和CollectionB的并集上面去,这个时候很明显你不想创建一个新的集合CollectionC,用来保存A和B的并集,这是因为如果你这样编写代码的话,用户在A控件上对CollectionA上做的修改,不能实时地反映到C上面去。
WPF团队其实已经想到这种情况了,因此他们提供了CollectionContainer用来支持将控件绑定到多个数据源的并集里面,比如下面的代码
Xaml代码:
C#代码:
例如你的窗口里面有三个ListView控件A、B、C,A和B分别绑定到整数集合CollectionA和集合CollectionB,然后你想将C绑定到CollectionA和CollectionB的并集上面去,这个时候很明显你不想创建一个新的集合CollectionC,用来保存A和B的并集,这是因为如果你这样编写代码的话,用户在A控件上对CollectionA上做的修改,不能实时地反映到C上面去。
WPF团队其实已经想到这种情况了,因此他们提供了CollectionContainer用来支持将控件绑定到多个数据源的并集里面,比如下面的代码
Xaml代码:
<ListBox x:Name="ListBox1" /> |
<ListBox x:Name="ListBox2" /> |
<ListBox x:Name="ListBox3" /> |
ObservableCollection<int> col1 = new ObservableCollection<int>( |
new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }); |
ObservableCollection<int> col2 = new ObservableCollection<int>( |
new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 }); |
ListBox1.ItemsSource = col1; |
ListBox2.ItemsSource = col2; |
CollectionContainer container1 = new CollectionContainer(); |
container1.Collection = col1; |
CollectionContainer container2 = new CollectionContainer(); |
container2.Collection = col2; |
CompositeCollection col3 = new CompositeCollection(); |
col3.Add(container1); |
相关文章推荐
- WPF初探——怎么在其他的线程更新Listview控件绑定的数据
- 在WPF中绑定类的属性至Label控件实现自动更新显示
- 关于模板控件如何实现多数据源绑定的问题
- 模拟实现WPF的依赖属性及绑定通知机制(3)--依赖对象
- 实现WPF元素同CLR元素的数据绑定的一般步骤
- WPF TreeView DataTable 绑定 实现无限层过滤
- gridview 绑定数据源 SqlDataSource 实现增加修改删除功能
- [转]WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- WPF利用通过父控件属性来获得绑定数据源RelativeSource
- DEVExpress XtraReport报表制作过程中绑定数据源的XRControl对象在值为0时不显示功能,通过代码自动实现
- WPF 实现跑马灯效果的Label控件,数据绑定方式实现
- DataGrid中的子控件Combox之数据源绑定(WPF)
- WPF利用通过父控件属性来获得绑定数据源RelativeSource
- C#_以SQLDataReader为数据源,实现TreeView与ListView之间的动态绑定
- WPF绑定数据源之RelativeSource
- 控件(三)——TreeView控件以XmlDataSource控件为数据源实现简单的绑定
- WPF 实现数据结构对象与UI控件的绑定
- WPF数据绑定(一):ListView + BindingList实现列表数据绑定
- WPF绑定数据源之RelativeSource
- WPF 参照WPF实现Silverlight中的多值绑定特性