ウィンドウに次の Loaded イベントがあります。
void Window_Loaded(object sender, RoutedEventArgs e) {
this.DataContext = new MyObject() {
MyDateTime = DateTime.Now,
MyNotEmptyString = "Not Empty",
MyNotUpperCaseString = "not upper case",
MyInteger = 20,
MyIntegerInRange = 1,
MyDouble = 4.56
};
}
上記で初期化された各プロパティに対して、TextBox
それにバインドする があり、それぞれに独自の検証ルールが関連付けられています。
問題は、私の検証ルールが初めて設定されたときに実行されていないことですが、フォームが通常どおりに使用されるとうまく機能します (フォームがフォーカスを失っthis.DataContext
たときに実行されます)。TextBox
この背後にある理由は何でしょうか? を設定してみUpdateSourceTrigger="PropertyChanged"
ましたが、うまくいきませんでした。
編集:TextBox
プロパティにバインドされている
a の例を次に示します。
<TextBox Name="MyDoubleField">
<TextBox.Text>
<Binding Path="MyDouble">
<Binding.ValidationRules>
<local:TextIsDouble/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>