Dans mon application silverlight i ont une vue avec une zone de liste:Mise à jour des données listbox avec RaisePropertyChanged
<ListBox Canvas.Left="12" Canvas.Top="72" Height="468" Name="invoiceList" Width="453" ItemsSource="{Binding ElementList}" >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
qui est lié à la liste des éléments dans ma VM. Le problème est que quand j'ajouter de nouveaux éléments, un par un, à l'aide de commande de relais:
public RelayCommand<Element> AddNewElement = new RelayCommand<Element>(NewElement(element));
public void NewElement(Element element)
{
if(ElementList == null) ElementList = new List<Element>();
if (element != null) ElementList.Add(element);
RaisePropertyChanged("ElementList");
}
les mises à jour listbox qu'une seule fois, il ne montre que premier élément de la collection, bien que plus d'articles sont à l'intérieur ElementList
Merci beaucoup qui a presque résolu le problème pour moi! Mais encore après MyElements.Add ("chaîne") j'ai dû appeler RaisePropertyChanged ("PropertyName") parce que la méthode Add n'a pas déclenché la liaison à mettre à jour, et maintenant cela fonctionne bien. – tchrikch
J'ai ajouté un exemple de code de travail. Essayez de vérifier votre code avec ceci parce que cela fonctionne dans un projet de test de moi –
Pouvez-vous accepter cette réponse afin que la question soit marquée comme acceptée –