Ligação de dados por caixa com stringvalues
-
03-07-2019 - |
Pergunta
Eu tenho que DataRows ligam a meus controles. Por enquanto, tudo bem. O problema agora é que minha datarow contém apenas cordas na coluna eu tenho que ligar, mas é claro que a propriedade "marcado" de uma caixa de seleção leva argumentos única boolean.
Existe uma maneira de usar DataBinding aqui? Talvez com algum tipo de conversor no meio?
Graças
Solução
Use a ConvertEventHandler Delegado para alterar os tipos de DataBinding.
Exemplo
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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow