Bonjour
J'ai la le dataGrid suivant :
Switches est une collection de type ObservableCollection<Switch>.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <DataGrid ItemsSource="{Binding SwitchService.Switches}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Id}" Header="ID" /> <DataGridTextColumn Binding="{Binding SwitchName}" Header="Name" /> <DataGridCheckBoxColumn Binding="{Binding SwitchState}" Header="State" /> </DataGrid.Columns> </DataGrid>
Et Switch est une classe contenant diverses propriétés affichées dans mon DataGrid.
Les propriétés des éléments contenus dans la collection sont mises à jour périodiquement.
Mon problème est que ma vue ne se met pas à jour lorsqu'une propriété est modifiée. Après quelques recherche j'ai compris que ObservableCollection ne notifie un changement qu'en cas de suppression, ajout, ... d'un élément. Ceci m’amène à ma première question : est-ce que ObservableCollection est le type approprié dans mon cas ? A priori je dirais non, une fois ma collection initialisée, elle ne change plus, ce sont uniquement les valeurs des propriétés des objets contenus dans ma collection qui peuvent être modifiées.
Deuxième question : comment faire pour rafraichir mon dataGrid ? Dois-je implémenter INotifyPropertyChanged dans ma classe Switch, ou y a-t-il une autre solution.
Cordialement
Julien
Partager