Liaison bidirectionnelle DataGridCheckboxColumn
Je suis à l'aide de la grille de données à partir de la WPF toolkit .NET 3.5.
J'ai une colonne de grille de données lié à une propriété booléenne à partir de mon objet source.
La case à cocher est l'appel de la boolean propriétés de l'accesseur get correctement.
Toutefois, lorsque cochant ou décochant la case de l'obtenir à la place de l'ensemble est appelé.
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Object, Source={StaticResource model}, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding BoolProperty, mode=TwoWay}"/>
</DataGrid.Columns>
</DataGrid>
Lorsque j'utilise plutôt un DataGridTemplateColumn avec une Case à cocher dans la propriété est définie correctement, cependant, il est plus compliqué de créer une belle mise en page.
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding BoolProperty, Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Ce que je fais mal à l'aide de la DataGridCheckBoxColumn?
source d'informationauteur DanBrum
Vous devez vous connecter pour publier un commentaire.
Dans un
DataGrid
les liaisons ne pas s'engager jusqu'à la fin de l'édition de la ligne/cellule. Si vous appuyez sur entrée, la liaison s'appliquent à la source de l'.À l'aide d'un modèle comme celui-ci remplace le comportement, je ne le recommande pas. Aussi la mise
TwoWay
explicitement ne devrait pas être nécessaire.J'ai eu le même problème avec vous ,voici ma solution
Ma solution a été de mettre UpdateSourceTrigger à PropertyChanged.
Ma solution était d'ajouter ElementStyle avec Style TargetType="CheckBox":