J'utilise MVVM pour mon projet, la liaison définie pour DataTable fonctionne correctement au premier démarrage, mais après avoir mis à jour des données sur DataTable, il semble que cela n'affecte pas DataGrid. Quelqu'un sait comment le résoudre?Liaison MVVM DataGrid (WPF Toolkit) à DataTable
Répondre
Difficile à dire sans plus d'informations et peut-être un peu de code (et je n'ai pas utilisé la grille de boîte à outils WPF - J'utilise le Infragistics un.) Quelques choses:
vous informons l'interface utilisateur des changements de propriétés (en implémentant l'interface INotifyPropertyChanged) dans vos classes MVVM?
Vous dites "après avoir mis à jour les données sur DataTable". Mise à jour comment? À travers la grille, ou par d'autres moyens? Est-ce que vos classes MVVM sont "rafraîchies" correctement (et en tant que telles, informer le DataGrid/UI que les données ont changé)?
J'ai eu beaucoup de chance avec ce genre de choses. Parfois, la grille Infragistics ne se met pas à jour si j'ajoute, par exemple, un élément à une collection par programmation. Je dois à peu près relire le tout pour que la grille soit mise à jour. Je n'ai pas encore trouvé la cause. Peut-être que vous faites face à une "anomalie" similaire ici.
Désolé, pas nécessairement utile mais peut-être assez pour vous diriger dans la bonne direction ... Vous ne pouvez pas aider beaucoup sans plus d'informations.
1. Non, je n'implémente pas l'interface INotifyPropertyChanged. Je vais essayer de l'implémenter (demain). 2. Mise à jour par commande sur ViewModel qui se lie au contrôle sur l'interface utilisateur. – Anonymous
Je n'ai pas encore essayé cette approche (par commande), mais il semblerait que seule l'interface utilisateur n'ait pas été informée que les données sous-jacentes ont changé. Vous pouvez faire ce que vous voulez en arrière-plan, mais si l'interface utilisateur n'obtient pas le mémo, elle ne sera pas mise à jour. – MetalMikester
J'ai trouvé le problème, j'ai oublié de déclencher OnPropertyChanged mais je n'ai aucune idée de comment l'implémenter avec DataTable. – Anonymous