【发布时间】:2010-09-24 07:01:40
【问题描述】:
我现在正在使用 ICollectionView,遇到了一个问题,我认为我理解“为什么”,但不理解“我该如何解决它”。 :)
我有一个数据绑定到 ICollectionView 的 ComboBox,它最初是使用以下代码设置的:
NameView = CollectionViewSource.GetDefaultView( names); // names is an IEnumerable<string> that comes from a LINQ query
NameView.CurrentChanged += new EventHandler(NameView_CurrentChanged);
在我执行一段代码生成新的IEnumerable<string> 并使用与上面相同的代码再次设置 NameView 之前,一切都很好。一旦我这样做了,CurrentItem 将不再正常工作。
我之前在将ObservableCollection<string> 数据绑定到组合框时遇到过这个问题,我通过使用Clear() 和Add() 而不是将ObservableCollection<string> 属性设置为新的@987654328 来解决“解除绑定”问题@。
我的问题包括:
1. 如果我希望能够将属性设置为新集合,我可以以某种方式重新建立与新集合的数据绑定吗?如果是这样,怎么做?如果不是,你能解释一下为什么这根本不可能的背后的 WPFisms 吗?
2. 处理ObservableCollection<string> 或ICollectionView 中的更改的最佳方法是什么?我只是清除和添加的方法是唯一的方法吗?
【问题讨论】:
标签: wpf data-binding .net-3.5 observablecollection icollectionview