首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定ObservableCollection

绑定ObservableCollection
EN

Stack Overflow用户
提问于 2013-12-30 08:02:54
回答 1查看 101关注 0票数 1

如何解决馆藏内容变更的问题?

一种方法是清除集合,并使用foreach循环添加新内容。集合必须在运行时更改,因为有时我要添加50万个元素,这花费的时间太长,对我来说是不可接受的。

当尝试将_myObservableCollection = new ObservableCollection<T>(_anotherCollection);绑定到视图被破坏时(引用旧集合)

有没有可能解决这个问题以及如何解决?

EN

回答 1

Stack Overflow用户

发布于 2013-12-30 08:07:43

如果在分配新集合后断开了与视图的绑定,则应该正确地为集合的属性实现INotifyPropertyChanged

编辑:示例

代码语言:javascript
复制
// 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需要知道的所有更改都必须通过该属性进行。不能从代码中的任何位置手动设置私有支持字段。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20831520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档