Связывание вложенных данных WPF работает случайным образом - PullRequest
1 голос
/ 04 августа 2011

У меня есть простая форма с несколькими текстовыми полями. Я использую ViewModel как DataContext, установленный из кода. Во ViewModel у меня есть свойство с именем Metadata. Это свойство изменяется, когда пользователь загружает новые «метаданные» в форму.

Текстовое поле XAML выглядит так:

<TextBox Text="{Binding Path=Metadata.ContractMetadata.Utstrackning.VastligasteLongitud, Mode=TwoWay}" />

В ViewModel при изменении свойства метаданных я запускаю OnProperyChanged («Метаданные»). Метаданные реализуют интерфейс INotifyPropertyChanged, другие классы в иерархии - нет. Иногда это работает, а иногда нет. Я попытался запустить:

OnProperyChanged("Metadata")
OnProperyChanged("Metadata.ContractMetadata");
OnProperyChanged("Metadata.ContractMetadata.Utstrackning");
OnProperyChanged("Metadata.ContractMetadata.Utstrackning.VastligasteLongitud");

... без удачи.

Ответы [ 2 ]

2 голосов
/ 04 августа 2011

ProperyChanged для вложенных свойств не делается так, как вы это делаете!

Каждый вложенный экземпляр уровня должен сам вызывать уведомление об изменении свойства.

например. Экземпляр метаданных должен вызывать свойство "ContractMetadata"

Экземпляр ContractMetadata должен вызывать свойство "Utstrackning"

и экземпляр Utstrackning должен вызвать свойство "VastligasteLongitud".

0 голосов
/ 04 августа 2011

Вы пробовали NotifyPropertyChanged ("...")?

...