Databinding per casella di controllo con valori stringa
-
03-07-2019 - |
Domanda
Devo associare i datarows ai miei controlli. Fin qui tutto bene. Il problema ora è che il mio datarow contiene solo stringhe nella colonna che devo associare, ma ovviamente la proprietà "ha controllato". di una casella di controllo accetta solo argomenti booleani.
Esiste un modo per utilizzare DataBinding qui? Forse con un qualche tipo di convertitore in mezzo?
Grazie
Soluzione
Utilizza il Delegato ConvertEventHandler per modificare i tipi per DataBinding.
Esempio
Binding binding = new Binding("checked", dt, "string_field");
binding.Format += new ConvertEventHandler(binding_Format);
binding.Parse += new ConvertEventHandler(binding_Parse);
this.checkbox1.DataBindings.Add(binding);
void binding_Format(object sender, ConvertEventArgs e)
{
if (e.Value.ToString() == "yep") e.Value = true;
else e.Value = false;
}
void binding_Parse(object sender, ConvertEventArgs e)
{
if ((bool)e.Value) e.Value = "yep";
else e.Value = "nope";
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow