#silverlight #wcf #inotifypropertychanged
#silverlight #wcf #inotifypropertychanged
Вопрос:
Я думаю, что лучший способ описать этот вопрос — на очень простом примере….
Представьте, что у вас есть два класса. Вызовите их Train
и Status
.
В DomainService
for Train
у вас есть строка, которая выглядит как:
[Include]
public Status { get; set;}
Status
Имеет два свойства: Name
и DisplayColor
.
- Теперь привяжите
ObservableCollection
Train
объекты кDataGrid
- Привязать
ObservableCollection
элементStatus
к другомуDataGrid
. - Затем обновите один из
Status
объектов. - Есть ли какой-либо способ заставить это изменение автоматически отражаться при
DataGrid
храненииTrain
объектов?
Спасибо!!!
Ответ №1:
Я думаю, это то, что вы хотите (при условии, что как служба, так и статус реализуют 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);
}