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

È stato utile?

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
scroll top