【问题标题】:Strange behavior with CheckBox in DataGridTemplateColumnDataGridTemplateColumn 中 CheckBox 的奇怪行为
【发布时间】:2010-11-03 20:15:14
【问题描述】:

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

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

我尝试了将水平/垂直对齐设置为拉伸的解决方案,但这并没有改变任何东西。

【问题讨论】:

    标签: silverlight binding checkbox datagridtemplatecolumn


    【解决方案1】:

    好吧,答案是……

    <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>
    

    像这样将复选框包装在内容控件中会导致问题消失!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-21
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      相关资源
      最近更新 更多