Pregunta

Tengo que enlazar datarows a mis controles. Hasta ahora tan bueno. El problema ahora es que mi datarow solo contiene cadenas en la columna que tengo que enlazar, pero, por supuesto, la propiedad " verificada " de una casilla de verificación sólo toma argumentos booleanos.

¿Hay una manera de usar DataBinding aquí? Tal vez con algún tipo de convertidor en el medio?

Gracias

¿Fue útil?

Solución

Utilice el ConvertEventHandler Delegate para cambiar los tipos de DataBinding.

Ejemplo

    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";
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top