1

我对 MVVM 有点陌生,想知道

假设我定义了一个ObservableCollection<Differences> Diffs属性。我还有以下属性:

public bool IsSame
{
    get
    {
         return Diffs.Count == 0;
    }
 }

我不明白我应该如何实现OnPropertyChangedfor IsSame,因为它在 Diff 列表中是隐含的。

  • 我应该附加到 ListOnCollectionChanged事件然后检查它是否发生变化IsSame
  • 我是否应该使用支持字段并处理 List OnCollectionChanged

非常感谢你。

4

2 回答 2

3

我是否应该使用支持字段并处理 List OnCollectionChanged?

正确地做到这一点:是的。

当相关属性发生变化时,由源来引发所有事件。您的主要问题是检测何时IsSame实际更改(即从 1 变为 0 或从 0 变为 1)。您需要一个支持字段,或者您将更频繁地引发事件(更多)然后需要。

于 2012-07-31T07:19:45.650 回答
1

当您收集更改时,您应该调用 OnPropertyChanged("IsSame"); - 这是正确的。但何时调用取决于您的视图模型逻辑。

编辑:假设您有一个添加和删除命令,那么您必须调用 OnPropertyChanged("IsSame"); 在这些方法中。

于 2012-07-31T07:05:52.873 回答