3

这是场景:

中有XAML textbox一个属性的绑定view model

行为 1 -

如果直接从代码将值分配给属性。

1)SET在绑定属性上调用。

2) 属性的私有字段被更新(value根据条件可能更新为 ,也可能更新为其他值)。

3)RaisePropertyChange("xx")被调用。

4)GET被调用。

5) 属性在视图中更新。任何存储在属性私有字段中的值都会显示在 UI 中。

行为 2 -

property如果用户在 中输入文本为分配了值textbox

1)SET在边界上调用property

2)properties私有字段被更新(value根据条件可能更新为 ,也可能更新为其他值)。

3)RaisePropertyChange("xx")被调用。

就是这样。我的问题是为什么第 4 步和第 5 步不会发生在场景 2 中?RaisePropertyChange正在被调用,所以不应该在GET不久之后调用该方法吗?有人可以解释为什么它不是..?

4

2 回答 2

0

BindingMode 将播放触发的事件。声音链接您的绑定模式是 OneWay(默认)并且您期望 TwoWay 行为。只需将其设置为双向。

<TextBlock Text="{Binding MyTextProperty, Mode=TwoWay}" ...

请参阅绑定模式属性

于 2013-01-16T17:53:21.700 回答
0

在场景 2 中,只有当该属性绑定到的不仅仅是文本框时,才会发生 GET 调用。由于文本框正在更新其绑定值,因此无需调用 GET,因为没有其他任何内容订阅它。

于 2013-01-16T18:06:11.080 回答