In un modulo Winforms, voglio fornire indicazioni visive all'utente quando un campo di input contiene un valore non valido. A tal fine, desidero associare la proprietà ForeColor
dell'etichetta di un campo di input alla proprietà (booleana) IsPropertyValid
del modello sottostante in modo che l'etichetta diventi rossa quando IsPropertyValid == false
.Associazione dati Winform: è possibile utilizzare un TypeConverter invece degli eventi Format/Parse?
Quello che ho attualmente è un gestore di eventi per il Format
l'evento di rilegatura:
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;
}
Se avessi voluto fare questo in WPF, suppongo avrei specificare un personalizzato value converter (bool
-Color
) direttamente con la vincolante in XAML. Ancora più importante, non dovrei fare riferimento a un controllo specifico tramite il suo nome.
Mi piacerebbe fare la stessa cosa con il mio modulo Winforms. Idealmente, potrei specificare un oggetto TypeConverter
per una particolare associazione direttamente nella finestra di progettazione form. È possibile?
Potresti spiegare come funziona questo codice e come risponde alla domanda? – stakx