In einem Winforms-Formular möchte ich dem Benutzer visuelle Hinweise geben, wenn ein Eingabefeld einen ungültigen Wert enthält. Zu diesem Zweck möchte ich die ForeColor
-Eigenschaft einer Eingabefeldbezeichnung an die (boolesche) IsPropertyValid
-Eigenschaft des zugrunde liegenden Modells binden, so dass die Beschriftung bei IsPropertyValid == false
rot wird.Winforms-Datenbindung: Kann ein TypeConverter anstelle der Format/Parse-Ereignisse verwendet werden?
Was ich derzeit haben, ist ein Ereignishandler für das Format
Veranstaltung Bindung:
Controls["dateOfBirthLabel"].DataBindings["ForeColor"].Format += convertBoolToColor;
// (dateOfBirthLabel.ForeColor is bound to a boolean IsDateOfBirthValid property.)
void convertBoolToColor(object sender, ConvertEventArgs e)
{
e.Value = (bool)e.Value ? Color.Black : Color.Red;
}
Wenn ich dies in WPF tun wollte, ich nehme an, ich eine benutzerdefinierte angeben würde value converter (bool
-Color
) direkt mit dem Bindung im XAML. Am wichtigsten, ich würde nicht auf ein bestimmtes Steuerelement über seinen Namen verweisen müssen.
Ich möchte das gleiche mit meinem Winforms-Formular machen. Im Idealfall könnte ich ein TypeConverter
Objekt für eine bestimmte Bindung direkt im Forms Designer angeben. Ist das möglich?
Könnten Sie bitte erklären, wie dieser Code funktionieren soll und wie er die Frage beantwortet? – stakx