Pergunta

Eu tenho uma grade que é binded a uma coleção. Por alguma razão que eu não sei, agora quando eu faço alguma ação na grade, a grade não atualização.

Situação: Quando eu clicar em um botão na grade, é aumentar a um valor que está na mesma linha. Quando clico, eu posso depurar e veja o incremento do valor, mas o valor não é alterado na grade. MAS quando clico no botão, minimizar e restaurar as janelas, o valor é atualizado ... o que eu tenho que fazer para ter o valor atualizado como era antes?

Atualizar Este não é resolvido, mas eu aceitei a melhor resposta por aqui.

Não é resolvido porque ele funciona como usuall quando os dados são do banco de dados, mas não a partir do cache. Objetos são serializados e lançou o processo do evento são perdidas. É por isso que eu construí-los de volta e ele funciona para o que eu sei, porque eu posso interagir com eles, mas parece que ele não funciona para a atualização da grade por uma razão desconhecida.

Foi útil?

Solução

Para que a ligação a ser bidirecional, desde o controle de fonte de dados e de fonte de dados para controlar a fonte de dados deve implementar propriedade mudando eventos de notificação, em uma das 2 formas possíveis:

  • Implementar a INotifyPropertyChanged Interface e aumentar o evento quando as propriedades mudar:

    public string Name 
    {
      get
      {
        return this._Name;
      }
      set
      {
        if (value != this._Name)
        {
            this._Name= value;
            NotifyPropertyChanged("Name");
        }
      }
    }
    
  • Inplement um evento alterado para cada propriedade que deve notificar os controles quando ele muda. O nome do evento deve ser na forma PropertyName Mudado:

    public event EventHandler NameChanged;
    
    public string Name 
    {
      get
      {
        return this._Name;
      }
      set
      {
        if (value != this._Name)
        {
            this._Name= value;
            if (NameChanged != null) NameChanged(this, EventArgs.Empty);
        }
      }
    }
    

    * como uma nota de seus valores de propriedade são os corretos depois de maximização da janela, porque os rereads controlar os valores da fonte de dados.

Outras dicas

Parece que você precisa chamar DataBind em seu código de atualização.

Eu estou usando o objeto BindingSource entre minha coleção e meu Grid. Normalmente eu não tenho que chamar qualquer coisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top