您的位置:首页 > 其它

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代码
<ListBox x:Name="ListBox1" />
<ListBox x:Name="ListBox2" />
<ListBox x:Name="ListBox3" />
C#代码
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: