【发布时间】:2016-08-06 09:57:49
【问题描述】:
我对实施 INotifyPropertyChanged 的后果以及未更新的属性因为 INotifyPropertyChanged 的后果有疑问。
假设我有一个带有 TextBlock 和 TextBox 的窗口。两者都附加到我的 ViewModel 中的同一个属性(文本)。
<TextBlock Grid.Row="0" Text="{Binding Text}"/>
<TextBox Grid.Row="1" Text="{Binding Text}"/>
场景 1: ViewModel 没有实现 INotifyPropertyChanged:
如果我在更改文本后离开 TextBox 的焦点,我的 TextBlock 也会更改文本。
场景 2: ViewModel 确实实现了 INotifyPropertyChanged:
我没有手动触发 PropertyChanged。所以我知道我的TextBlock在更改TextBox的文本后不会更改文本。
但是为什么在没有 INotifyPropertyChanged 的情况下工作场景 1? ...为什么仅仅因为实现了 INotifyPropertyChanged,相同的操作就不再起作用了?
【问题讨论】:
-
你确定吗?当你触发 PropertyChanged 时会发生什么?
-
是的@Paparazzi,如果我之后触发 PropertyChanged,TextBox 会按预期更新。
标签: c# wpf mvvm binding propertychanged