Ich bin neu in WPF und ich habe ein einfaches Login-Fenster in MVVM mit Login-Name/Passwort mit einer Schaltfläche implementiert. mein viewmodel implementiert die Schnittstelle idataerrorinfo, um Textboxen zu validieren. Meine Absicht ist, leere Textfelder beim Laden und bei Klick-Textfeldern zu haben, um validiert zu werden, um Fehler anzuzeigen (wie das Namensfeld ist leer), nur auf Knopfanmeldung. Ich habe die Bindung alsWPF Validierung auf Textfeld nur auf Buttonclick nicht auf Windowload
<TextBox x:Name="txtName" Text="{Binding Path=Name,UpdateSourceTrigger=LostFocus,ValidatesOnDataErrors=True,ValidatesOnNotifyDataErrors=False}"/>
verwendet
mit Stil für Tooltip Fehler
<Style TargetType="TextBox">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource= {x:StaticRelativeSource.Self},
UpdateSourceTrigger=PropertyChanged,
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
und implementiert diese Eigenschaft von IDataErrorInfo mit Validierungen in Ansichtsmodell wie unten
public string this[string columnName]
{
get
{
return Validate(columnName);
}
}
i Datacontext bin Bindung an Ansichtsmodell Klassenobjekt. Es funktioniert wie erwartet, außer Fehler wird in der Textbox auf windowload angezeigt. Ich will es nur bei Fensterladen. Bitte helfen Sie, wenn ich etwas verpasst habe. Vielen Dank.
feste Formatierung – winhowes