我有一个包含多个文本框的简单表单。我使用ViewModel作为代码中的DataContext集。在ViewModel中,我有一个名为Metadata的属性。当用户将新的“元数据”加载到表单中时,此属性会发生变化。
文本框XAML如下所示:
<TextBox Text="{Binding Path=Metadata.ContractMetadata.Utstrackning.VastligasteLongitud, Mode=TwoWay}" />
在ViewModel中,当Metadata属性更改时,我运行OnProperyChanged(“Metadata”)。元数据实现INotifyPropertyChanged接口,层次结构中的其他类不实现。有时它会起作用,有时却不起作用。我试过跑:
OnProperyChanged("Metadata")
OnProperyChanged("Metadata.ContractMetadata");
OnProperyChanged("Metadata.ContractMetadata.Utstrackning");
OnProperyChanged("Metadata.ContractMetadata.Utstrackning.VastligasteLongitud");
......没有运气。
答案 0 :(得分:2)
嵌套属性的ProperyChanged不是按照你的方式完成的!
每个嵌套级别实例必须自行引发属性更改通知。
e.g。元数据实例应该引发“ContractMetadata”属性
ContractMetadata实例应该引发“Utstrackning”属性
和Utstrackning实例应该提升“VastligasteLongitud”属性。
答案 1 :(得分:0)
您是否尝试过NotifyPropertyChanged(“...”)?