Как уведомить контейнерный класс в шаблоне mvvm - PullRequest
0 голосов
/ 11 февраля 2012

В моем приложении Silver Light у меня есть два класса: Контейнер и Поле.

Контейнер содержит список полей.Теперь, когда поле (в списке) получает сообщение, я хочу уведомить объект-контейнер для выполнения некоторой логики.

Объект-поле не должен содержать никаких ссылок на контейнер.Мне нужно добиться этого с помощью INotifyPropertyChanged.

Пожалуйста, предложите простое решение с использованием INotifyPropertyChanged.

1 Ответ

2 голосов
/ 11 февраля 2012

Ваш объект-контейнер может подписаться на событие PropertyChanged каждого из его дочерних объектов Field.

Если это не свойство, изменяющее ваш интерес напрямую, вы можете реализовать собственное событие для объекта Field.

Трудно привести пример, не зная вашей точной ситуации ... но здесь.

E.g Псевдокод: (на объекте Контейнер)

public void AddField(Field field)
{
    // attach to the new fields property changed event
    field.PropertyChanged += OnFieldPropertyChanged;

    // add the new field to this container's collection
    this.Fields.Add(field);
}

private void OnFieldPropertyChanged(object sender, PropertyChangedEventArgs e)
{
    // do something
}

Вы также можете проверить ObservableCollections .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...