2017-03-15 1 views
0

J'ai un contrôle personnalisé qui possède une propriété de dépendance et j'utilise ce contrôle personnalisé comme modèle dans les cellules DataGrid. J'ai une mainwindow où cette grille de données est placée et j'ai déclaré une propriété de dépendance supplémentaire pour obtenir des valeurs de chaque cellule.Le mode de propriété de dépendance doit se comporter comme bidirectionnel dans certaines conditions

Par exemple: Lorsqu'une mise à jour du contrôle personnalisé de la cellule 1 est répercutée dans la propriété de dépendance de la fenêtre principale. Ensuite, cette propriété de dépendance mettra à jour toutes les autres cellules en raison de la liaison bidirectionnelle. Mais à certaines conditions, il devrait se comporter comme une liaison à sens unique pendant l'exécution. J'ai donc utilisé la propriété validatevaluecallback pour que la validation se comporte comme unway ou twoway.

Mais ici, j'ai un problème de frapper ce validatevaluecallback pour toutes les cellules quand un changement se produit sur une cellule?

Répondre

0

Vous devez séparer vos 2 scénarios.

mettre votre contrôle [1] paramètres dans CellTemplate

et votre contrôle [paramètres 2] dans CellEditingTemplate

de DataGridTemplateColumn.

Ensuite, définissez la propriété IsReadOnly de DataGrid avec une liaison. Ainsi, vous pouvez utiliser 2 liaisons différentes sur votre contrôle, selon la situation.