none
Urgente!!!! Comportamento estranho nos controles de Childform RRS feed

  • Pergunta

  • Amigos,

    Estou iniciando a construção de um sistema ERP no SL 3, o que estou achando curioso é o seguinte:

    Tenho em uma tela de cadastro que possui somente um campo, e este é preenchido com uma descrição. Pois bem, eu preencho este campo e em seguida seleciono o botão para gravar, o conteúdo do meu objeto que está ligado através do Binding fica nulo, porém, se eu preencho o conteúdo do textbox, e em seguida preciono a tecla TAB, o meu objeto é preenchido com o conteúdo do textbox e gravado corretamente no banco.

    Abaixo está a configuração das propriedades do textbox que está na tela:

            <TextBox x:Name="txtDescricao" Margin="81,22,12,27" Grid.Row="1" TextWrapping="Wrap" MaxLength="40" d:LayoutOverrides="Height" Text="{Binding DescricaoColecao, Mode=TwoWay}"/>

    Vejam que tem Binding e tudo mais...será que no SL eu tenho que dar um refresh na tela para que o conteúdo dos campos sejam informados no objeto? Se sim, como eu faço isso?

    Um forte abraço!

    segunda-feira, 22 de março de 2010 18:51

Respostas

  • Você precisa implementar a interface INotifyPropertyChanged ou então criar um instancia de ObservableCollection<T> definindo a classe a sua escolha.

    segui em exemplo:

    public class Pessoa : INotifyPropertyChanged
        {
            string _nome;

            public string Nome
            {
                get{return _nome;}
                set            
                {  
                    if (value != this._nome)
                    {
                        this._nome = value;
                        NotifyPropertyChanged("Nome");
                    }

                }
            }

            #region INotifyPropertyChanged Members

            public event PropertyChangedEventHandler PropertyChanged;
            private void NotifyPropertyChanged(String info)
            {
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(info));
                }
            }

            #endregion
        }

     

     

    ou pode ser usado ObservableCollection:

     public class Pessoa
        {
            ObservableCollection<Pessoa> lista = new ObservableCollection<Pessoa>();      

            public string Nome { get; set; }
        }

     

    espero ter te ajudado, qualqer duvida é so falar,

    abraços

     


    Emerson Andrade de Souza
    www.emersonti.blogspot.com
    • Marcado como Resposta Daniel Ferreira quarta-feira, 14 de julho de 2010 13:24
    terça-feira, 23 de março de 2010 13:43