2011-10-25 203 views
0

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

想象一下,你有两个类。称它们为TrainStatus

DomainServiceTrain你有一条线,看起来像:

[Include] 
public Status { get; set;} 

Status具有两个属性:NameDisplayColor

  1. 现在,结合TrainObservableCollection一个对象到DataGrid
  2. 绑定Status一个ObservableCollection到另一个DataGrid
  3. 然后更新Status对象之一。
  4. 有没有什么办法可以让这个改变自动反映在DataGrid中持有Train的对象?

谢谢!

回答

0

我想这是你想要的(假设两者的服务和状态执行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); 
}