Pergunta

I têm uma instância de ObservableCollection ligado a uma caixa de listagem WPF com dois padrões distintos de dados (uma para exibição, um para a edição). O modelo de dados para a edição tem uma ligação na caixa de texto one-way, e um botão Salvar.

Que mudanças eu preciso fazer para que quando eu pressionar o botão Save (depois de colocar o item da lista no modo de edição), o valor I mudar a caixa de texto para substitui o valor no ObservableCollection (e visor)?

Foi útil?

Solução

Os produtos em sua coleção deve ser do tipo que implementa INotifyPropertyChanged interface. Desta forma, sua caixa de listagem será notificado de que o valor da propriedade em seu objeto único item mudou. ObservableCollection aumentos CollectionChanged evento somente quando as mudanças de coleta (itens adicionados, removidos, etc.)

citar o artigo biblioteca MSDN em ObservableCollection

Para apoiar plenamente a transferência de dados Os valores de ligao para objectos de origem objectivos vinculativos, cada objeto em seu coleção que suporta bindable Propriedades deve implementar um propriedade apropriada alterado mecanismo de notificação, tais como o INotifyPropertyChanged interface.

Outras dicas

Para notificação de alteração de ocorrer em uma ligação entre um cliente amarrado e uma fonte de dados, o tipo de limite deve ser:

  • Implementar o INotifyPropertyChanged Interface (preferido).
  • Fornecer um evento de alteração para cada propriedade do tipo de limite.

Não faça ambos.

Fonte: MSDN: INotifyPropertyChanged interface

Eu já resolveu problema semelhante usando BindingList classe.

evento

Tem ListChanged disparado tanto na recolha e mudança item individual.

Introduzido em .Net 3.5

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