Ich habe das folgende Loaded-Ereignis in meinem Fenster:
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
};
}
Für jede Eigenschaft, die oben initialisiert wurde, habe ich eine TextBox
die mit ihr verbunden sind, wobei jede ihre eigene(n) Validierungsregel(n) hat.
Das Problem ist, dass meine Validierungsregeln nicht gleich beim ersten Mal ausgeführt werden, wenn this.DataContext
gesetzt ist, aber gut funktionieren, wenn das Formular normal verwendet wird (sie werden ausgeführt, wenn die TextBox
verliert den Fokus). Was könnte der Grund dafür sein? Ich habe versucht, die Einstellung UpdateSourceTrigger="PropertyChanged"
aber das hat nicht geholfen.
編集する。 Hier ist ein Beispiel für eine TextBox
die an eine Eigenschaft gebunden ist:
<TextBox Name="MyDoubleField">
<TextBox.Text>
<Binding Path="MyDouble">
<Binding.ValidationRules>
<local:TextIsDouble/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>