Eu tenho uma caixa de combinação com fonte de itens anexada usando ligação simples. Existe alguma maneira de atualizar esta ligação depois que a caixa de combinação é carregada?
c#
wpf
data-binding
Techee
fonte
fonte
Respostas:
Você pode usar expressões de ligação:
Mas, como Blindmeis observou, você também pode disparar notificações de alteração, além disso, se sua coleção for implementada
INotifyCollectionChanged
(por exemplo, implementada noObservableCollection<T>
), ela será sincronizada, portanto, você não precisa fazer nada disso.fonte
se você usa mvvm e sua fonte de itens está localizada em sua VM. apenas chame INotifyPropertyChanged para sua propriedade de coleção quando quiser atualizar.
fonte
INotifyPropertyChanged
, mas você terá que manter a porta privada para esse wrapper e, portanto, precisa escrever uma propriedade e método para tudo nessa porta que você usa em outro lugar no projeto para garantir que as propriedades que você está interessado em notificar sempre passam pelo wrappernameof(YourCollectionProperty)
ao invés de uma string literal. Isso evita que os bugs sejam refatorados e é mais explícito o que realmente se pretende. É claro que aqui você não pode usar oCallerMemberName
atributo que é ainda melhorPara adicionar meus 2 centavos, se você deseja atualizar sua fonte de dados com o novo valor de seu Controle, você precisa chamar em
UpdateSource()
vez deUpdateTarget()
:fonte
Versão amigável de MultiBinding ...
fonte
Tente usar
BindingExpression.UpdateTarget()
fonte
Eu estava buscando dados do back-end e atualizei a tela com apenas uma linha de código. Funcionou. Não tenho certeza, por que precisamos implementar a Interface. (Windows 10, UWP)
fonte