2011-10-25 257 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); 
}