【问题标题】:WPF observable collectionWPF 可观察集合
【发布时间】:2015-11-26 10:16:51
【问题描述】:

我在视图模型中有一个ObservableCollection,它绑定到视图中的DataGrid,但如果有人添加新行或有人修改了已经存在的行,则不会触发CollectionChanged 事件。

    public void onCollectionEventFired(object sender, NotifyCollectionChangedEventArgs e)
    {
        if (e.NewItems != null)
        {

        }
        if (e.OldItems != null)
        { 

        }
    }


    #region Properties
    public ObservableCollection<Expenses> expenses
    {
        get
        {
            if (_expenses == null)
            {
                _expenses = new ObservableCollection<Expenses>();
                _expenses.CollectionChanged += onCollectionEventFired;
            }

            return _expenses;
        }
    }

【问题讨论】:

  • 你能发布你的 XAML 吗?

标签: wpf observablecollection


【解决方案1】:

您应该在 ViewModel 中订阅 CollectionChanged 事件,而不是您的集合的 getter。

public class MyVM
   {
      public MyVM()
      {
         this.expenses.CollectionChanged += onCollectionEventFired;
      }
   }

您需要一个set{} 来分配对集合的更改。

public ObservableCollection<Expenses> expenses
    {
        get
        {
            if (_expenses == null)
            {
                _expenses = new ObservableCollection<Expenses>();
            }

            return _expenses;
        }
        set
        {
            _expenses = value;
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-07
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多