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")が呼び出されます。

以上です。私の質問は、シナリオ 2 でステップ 4 と 5 が発生しないのはなぜですか? が呼び出されているので、メソッドはすぐに呼び出されるRaisePropertyChangeべきではありませんか? GETなぜそうではないのか誰かが説明できますか..?

4

2 に答える 2

0

BindingMode は、トリガーされたイベントで再生されます。バインディング モードが OneWay (デフォルト) であり、TwoWay の動作が期待されていることを示しています。TwoWay に設定するだけです。

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

Binding Mode プロパティを参照してください。

于 2013-01-16T17:53:21.700 に答える
0

シナリオ 2 では、GET 呼び出しは、そのプロパティがテキスト ボックス以外にもバインドされている場合にのみ発生します。テキストボックスはバインドされた値を更新しているため、他に何も購読されていないため、GET を呼び出す必要はありません。

于 2013-01-16T18:06:11.080 に答える