2011-09-09 11 views
0

Notre entreprise utilise indexeurs pour notre cadre, afin que nous puissions lier rapidement les données à une fenêtre sans avoir à créer une propriété pour chaque source de données. Depuis WPF (contrairement à Silverlight?) Vous oblige à utiliser OnPropertyChanged (« Point [] ») pour indiquer un changement, tous les éléments qui utilisent un indexeur sont mises à jour sur l'interface utilisateur. Cette fonctionnalité provoque un problème lorsqu'un contrôle utilise à la fois une ValidationRule et accède aux données via un indexeur. Il semble qu'en appelant OnPropertyChanged pour une propriété indexeur, il actualise les données sur le contrôle à ce qui est dans la source de données lorsqu'il y a une erreur avec le contrôle. Comme il n'y a pas moyen d'appeler OnPropertyChanged une propriété indexeur avec une valeur clé, un changement à un autre contrôle finit par revenir ce qui est dans le contrôle qui a l'erreur.ValidationRule avec indexeur Problème

Ma question est: Quelqu'un at-il été en mesure d'utiliser les deux propriétés indexeur et ValidationRule, ensemble, de sorte qu'un contrôle avec une erreur conserve son erreur jusqu'à ce que l'utilisateur fixe le contrôle?

Sinon, quelqu'un at-il des suggestions? Nous aimons utiliser la propriété indexer, car cela rend la mise en liaison beaucoup plus rapide que la création d'une propriété pour chaque champ de données (nos applications sont centrées autour de CRUD).

Répondre

1

La solution, qui a été trouvé, était de mettre en œuvre un DynamicObject. Ce faisant, l'indexeur n'a pas été utilisé et a évité le problème.