Force de DataGrid en mode d'édition lors de l'utilisation ListView pour CellTemplate
-
29-09-2019 - |
Question
Bonjour,
Dans un WPF DataGridTemplateColumn J'ai un CellTemplate en utilisant un ListView et un CellEditingTemplate en utilisant une grille de données.
<DataTemplate x:Key="LimitsTemplate">
<ListView ItemsSource="{Binding Limits}" IsEnabled="False">
<ListView.ItemTemplate>
...
</ListView.ItemTemplate>
</ListView>
</DataTemplate>
<DataTemplate x:Key="LimitsEditingTemplate">
<toolkit:DataGrid ItemsSource="{Binding Limits}" ...>
...
</toolkit:DataGrid>
</DataTemplate>
Le problème que je suis face est de savoir comment forcer la colonne en mode édition double clic? Ceci est le comportement par défaut pour les autres colonnes et je crois pour le DataGrid en général. En appuyant sur F2 commence le mode d'édition, mais le double clic en utilisant la souris ne fonctionne pas.
Si je mets le ListView.IsEnabled False puis les travaux à double clic, mais j'ai une vue sur la liste désactivée qui ne semble pas se sent bien et tout hack style comme un bidouille laid.
Notez que j'ai essayé simple clic édition qui ne pas faire l'affaire.
Toute aide appréciée, merci!
La solution
Bien sûr, dès que je demande SO, la réponse se matérialise :) Si j'utilise la méthode FindVisualParent du
Autres conseils
J'ai eu problème similaire avec mon DataGrid. Voici ce qui a causé le problème dans mon projet. Le ItemsSource dans mon DataGrid est attribué une liste personnalisée qui implémente IEnumerable
J'ai mis en cette liste afin qu'il retourne différents objets pour différents appels du même indice .. comme si vous appelez la liste [0] la première fois qu'il retourne un objet qui contient le nom « WPF » par exemple si vous appelez à nouveau la liste [0] il sera de retour pour vous un tout nouvel objet qui contient la valeur « WPF ».
Donc, si la collection (limites) vous liez, est une collection personnalisée que vous avez implémenté des interfaces IEnumerable et IList pour, puis vérifier l'implémentation. dans mon cas, il était l'opérateur d'index, IndexOf et contient.