INotifyPropertyChanged для свойства собственности - PullRequest
0 голосов
/ 25 октября 2011

Я думаю, что лучший способ описать этот вопрос - очень простой пример ....

Представьте, что у вас есть два класса. Назовите их Train и Status.

В DomainService для Train есть строка, которая выглядит следующим образом:

[Include]
public Status { get; set;}

Status имеет два свойства: Name и DisplayColor.

  1. Теперь свяжите ObservableCollection из Train объектов с DataGrid
  2. Свяжите ObservableCollection из Status с другим DataGrid.
  3. Затем обновите один из Status объектов.
  4. Можно ли как-нибудь автоматически отразить это изменение в DataGrid, удерживающем объекты Train?

Спасибо !!!

1 Ответ

0 голосов
/ 25 октября 2011

Я думаю, что это то, что вы хотите (при условии, что служба и статус реализуют 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);
}
...