INotifyPropertyChanged属性属性

时间:2011-10-25 16:20:02

标签: silverlight wcf inotifypropertychanged

我认为描述这个问题的最好方法是用一个非常简单的例子......

想象一下,你有两个班级。称他们为TrainStatus

DomainService Train中,你有一行如下:

[Include]
public Status { get; set;}

Status有两个属性:NameDisplayColor

  1. 现在,将ObservableCollectionTrain个对象绑定到DataGrid
  2. ObservableCollection Status绑定到另一个DataGrid
  3. 然后更新其中一个Status个对象。
  4. 有没有办法让这个变化自动反映在DataGrid持有Train个对象的位置?
  5. 谢谢!!!

1 个答案:

答案 0 :(得分:0)

我认为这就是你想要的(假设服务和Status都实现了INotifyPropertyChanged):

private Status _status;

[Include]
public Status Status
{
  get { return _status; }
  set 
  {
    if (_status == value) return;

    if (_status != null)
       _status.PropertyChanged -= NotifyStatusChanged;

    _status = value;

    // Whatever your implementation of INotifyPropertyChanged looks like.
    RaiseNotifyPropertyChanged(()=> Status);

    if (_status != null)
       _status.PropertyChanged += NotifyStatusChanged;
  }
}

private void NotifyStatusChanged(object o, EventArgs e) 
{
    // Whatever your implementation of INotifyPropertyChanged looks like.
    RaiseNotifyPropertyChanged(()=> Status);
}