时间:2010-11-03 20:15:14

标签: silverlight binding checkbox datagridtemplatecolumn

我有一个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>

只要用户点击复选框上的直接,一切正常。如果他们单击单元格中的任何其他位置,则单元格将被选中。但是在随后点击复选框时 - 复选框会更改状态,但该更改不会反映在绑定对象中 如果用户点击任何其他单元格,然后返回以单击该复选框,则会再次起作用 为什么选择单元格会禁用复选框????

的绑定

我尝试了将水平/垂直对齐设置为拉伸的解决方案,但这不会改变任何内容。

1 个答案:

答案 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中包含复选框会导致问题消失!