none
DataBindings - propriedade não atualiza RRS feed

  • Pergunta

  • Senhores, estou com a seguinte situação: abaixo tem a estrutura:

    public class NotaFiscal : Tabela
    {

      private Decimal vnf;

      public Decimal Vnf
            {
                get { return vnf; }
                set { vnf = value; }
            }

    }

    private void frmcompra_Load(object sender, EventArgs e)
            {

               textBoxNumbertotal.DataBindings.Add("Text", nota, "Vnf");

    }

     

    private void totaliza_nota()
            {

        private int total_geral = 100;

        textBoxNumbertotal.Text = total_geral.ToString();

    }

    na chamada da função totaliza_nota(), atualizo o valor para 100.00 por exemplo, mas na propriedade Vnf da classe continua com zero. Imaginei que por ter o DataBindings já atualizaria automaticamente. O que devo fazer para que o valor da propriedade seja atualizado sempre que o textbox for atualizado e vice-versa?

     

    sábado, 26 de fevereiro de 2011 13:19

Respostas

  • Coloca um objectBindingSource como data supplier da sua classe. Vá no textbox, clique em databinding, selecione o objectDataSource que vai conter o nome da sua classe + (objectDataSource), escolha a propriedade que vc quer fazer o link, e ao lado, existirá um combobox indicando qual é o metodo de atualização que vc quer usar

     

    OnValidation = que valida assim que vc perde o foco do controle

    OnPropertyChanged = valida conforme vc digita

     

    Escolha OnPropertyChanged. Sete a propriedade DataSource do seu objectDataSource pra alguma collection da classe NotaFiscal. Automaticamente o textbox vai receber o valor da propriedade da classe dentro da collection (a primeira)

     

    Se vc quiser navegar pelo bindingsource, tem como usar os metodos MoveNext, MovePrior, e etc. Mas teoricamente, só fazendo o databinding, sem usar nenhum tipo de bindingsource pra segurar os dados, eu não tenho certeza se irá conseguir dessa maneira

     

    []s

    quarta-feira, 2 de março de 2011 03:32