[WPF] Textbox Validation

26/02/2010 - 21:48 von Michael Thelen | Report spam
Hallo zusammen,

ich habe ein Fenster mit 4 Textboxen. Auf die erste Textbox habe ich in
XAML den Fokus gesetzt mit: FocusManager.FocusedElement="{Binding
ElementName=tbLimitlineTitle}">

Für diese Textbox habe ich ein Binding und eine ValidationRule angelegt.
Alles in XAML. UpdateSourceTrigger steht auf LostFocus. Wenn ich jetzt
aber nachdem das Fenster gestartet ist in eine andere Textbox klicke,
wird die Validation nicht durch geführt. Ich muss erst in der der
überwachten Textbox irgendwas getippt haben, dann funktioniert es auch
für einen zu kurzen Text, bzw. gar keinen Text.

Anscheinend wird der LostFocus Trigger beim ersten Mal nicht ausgelöst.
Was mache ich falsch?

Gruß
Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
27/02/2010 - 14:03 | Warnen spam
Anscheinend wird der LostFocus Trigger beim ersten Mal nicht ausgelöst.



Das Problem sollte in meinem Beispiel auch gelöst sein:
http://dzaebel.net/Downloads/WpfTextBoxBinding.zip
Also eben über UpdateSource:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
TextBox tb = FocusManager.GetFocusedElement(this) as TextBox;
if (tb != null)
{
var bindExp = tb.GetBindingExpression(TextBox.TextProperty);
bindExp.UpdateSource(); // <<-
}
DataContext = Person;
}

[BindingExpression.UpdateSource-Methode (System.Windows.Data)]
http://msdn.microsoft.com/de-de/lib...ource.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen