2009-10-16 7 views
0

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

0

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.

+0

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

+0

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

+0

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