我有一个SL4 DataGrid,其中一列包含一个复选框:
<data:DataGridTemplateColumn Header="Check" CanUserSort="False" >
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="CheckRead" Click="CheckRead_Click" IsChecked="{Binding Acknowledged, Mode=TwoWay}" />
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
只要用户点击复选框上的直接,一切正常。如果他们单击单元格中的任何其他位置,则单元格将被选中。但是在随后点击复选框时 - 复选框会更改状态,但该更改不会反映在绑定对象中 如果用户点击任何其他单元格,然后返回以单击该复选框,则会再次起作用 为什么选择单元格会禁用复选框????
的绑定我尝试了将水平/垂直对齐设置为拉伸的解决方案,但这不会改变任何内容。
答案 0 :(得分:3)
好的,答案是......
<data:DataGridTemplateColumn Header="Check" CanUserSort="False" >
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentControl HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" HorizontalAlignment="Center">
<CheckBox x:Name="CheckRead" Click="CheckRead_Click" IsChecked="{Binding Acknowledged, Mode=TwoWay}" />
</ContentControl>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
在这样的contentcontrol中包含复选框会导致问题消失!