从列表中删除不要打电话给setter?

jim*_*zer 4 c# mvvm

在我的c#app(MVVM Pattern)中我有这样的东西:

 private List<MyClass> _classes= new List<MyClass>();
 public List<MyClass> Classes
    {
        get { return _classes; }
        set
        {
            _servers = value;
            NotifyOfPropertyChange(() => Classes);
            NotifyOfPropertyChange(() => Classes2);
        }
    }
  public List<MyClass> Classes2
    {
        get
        {
           return Classes.Where(class=> class.boolValue).ToList();
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我使用Classes.Add(class)或者Classes.Remove(class)setter没有调用时.为什么?

wgr*_*ham 9

因为您没有更改Classes属性 - 您正在更改引用的对象的内部状态Classes.如果您需要收到有关列表更改的通知,您可能需要查看ObservableCollection:

http://msdn.microsoft.com/en-us/library/ms668604.aspx