Je code suivant dans un DataGrid étendu pour cocher ou décocher la CheckBoxColumn:Comment lier des données dans WPG DataGrid dans le code?
if (this.Columns[c] is DataGridCheckBoxColumn)
{
CheckBox cb = this.GetCellCtrl<CheckBox>(this.Columns[fromCol], topRow);
for (int r = fromRow + 1; r <= toRow; r++)
{
CheckBox tt = this.GetCellCtrl<CheckBox>(this.Columns[fromCol], this.GetRow(r));
if (tt != null)
tt.IsChecked = cb.IsChecked;
}
}
Le problème est que les cases sont cochées (ou non), mais les données sous-jacentes ne sont pas mis à jour. Si je clique sur la case à cocher, cela fonctionne. Alors, quelle est la différence entre mon code et le clic de la souris? Comment résoudre mon problème?
Merci beaucoup pour votre réponse. Je ne cherche pas UI Automation. J'essaie simplement de créer une fonction générique pour rendre les cellules sélectionnées vérifiables indépendamment de la source de données sous-jacente - s'il s'agit d'un DataGridCheckBoxColum, les données de liaison doivent être de type booléen. J'essaie pratiquement de simuler un clic de souris sur les CheckBox. De mes tests, la liaison ne semble pas être découplée, car je pouvais toujours cliquer dessus et les données sous-jacentes reflétaient le changement. – newman
Vous avez dit "Définir une valeur localement va supprimer la liaison" - Comment cela fonctionne? Comment puis-je rétablir la liaison? – newman