У меня есть модель, состоящая из трех классов: A, B и C. A имеет ObservableCollection of B, B имеет ObservableCollection C. C имеет ссылку (не наблюдаемая .. Я не думаю, что это необходимо) для его родителя (B), а B имеет ссылку на A. Каждый атрибут A, B и C уведомляет об изменениях.Нотифицированное свойство не «обновлено» в пользовательском интерфейсе
У меня тогда есть класс модели, который «отслеживает» все выделенные объекты. Таким образом, он имеет ObservableCollection из A, B и C (единственное, что требуется для As, я сохраняю списки для B и C только для более быстрой ссылки).
У меня есть пользовательский элемент управления: он имеет ViewModel. В представлении есть список. Его ItemSources привязана к ViewModel к наблюдаемым коллекциям именованных датчиков. Этот ObservableCollection имеет RowViewModel. Каждый RowViewModel сохраняет ссылку на объект C.
Мое приложение загружает модель (создание A, B, объекты C), а затем задает список вида путем вызова этого метода (может быть, это проблема?)
public void setSensors(IList<C> list)
{
this.sensors.Clear();
if (list != null)
{
foreach (var row in list)
this.sensors.Add(new RowViewModel(row));
}
}
Проблема заключается в том, что если Я изменяю свойство моего объекта C, это не отражается на пользовательском интерфейсе.
Кто-нибудь может мне помочь? Спасибо
Francesco
EDIT: (решаемые) благодаря вашим ответам я проверил мой код и изменил одну вещь: вместо того, чтобы связывать мой элемент пользовательского интерфейса для его ViewModel (и ViewModel просто «перенаправить» вызов к свойству модели), я напрямую привязываю интерфейс к реальному свойству, и он работает !! Итак ... в MVVM Я не могу использовать «ярлыки» ?? .. или если я их использую, я должен зарегистрироваться для уведомления об этом свойстве и «распространять» их?
Вы изменили настройки вашего правительства? – squelos
хорошо .. думаю думаю. Я поставил точку останова в своем «NotifyPropertyChanged», и он вводит его. – Francesco
попробуйте проверить, слушает ли кто-то эти события. Если правильные объекты эффективно прослушивают, ну, я не знаю:/ – squelos