如何解决馆藏内容变更的问题?
一种方法是清除集合,并使用foreach循环添加新内容。集合必须在运行时更改,因为有时我要添加50万个元素,这花费的时间太长,对我来说是不可接受的。
当尝试将_myObservableCollection = new ObservableCollection<T>(_anotherCollection);绑定到视图被破坏时(引用旧集合)
有没有可能解决这个问题以及如何解决?
发布于 2013-12-30 08:07:43
如果在分配新集合后断开了与视图的绑定,则应该正确地为集合的属性实现INotifyPropertyChanged。
编辑:示例
// implement the interface on your viewmodel
public class ExampleViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private ObservableCollection<UIElement> collectionBackingField;
public ObservableCollection<UIElement> Collection
{
get { return collectionBackingField; }
set
{
if(value != collectionBackingField)
{
collectionBackingField = value;
// call the method that notifies all observers of the changes
NotifyPropertyChanged();
}
}
}
}请注意,现在UI需要知道的所有更改都必须通过该属性进行。不能从代码中的任何位置手动设置私有支持字段。
https://stackoverflow.com/questions/20831520
复制相似问题