2

チェックボックスを含む列を持つ 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>

ユーザーがチェックボックスを直接クリックする限り、すべてが正常に機能します。セル内の他の場所をクリックすると、セルが選択されます。しかし、その後チェックボックスをクリックすると、チェックボックスの状態が変わりますが、その変更はバインドされたオブジェクトには反映されません。
ユーザーが他のセルをクリックしてから、チェックボックスをクリックするために戻った場合、再び機能します。
セルを選択すると、チェックボックスのバインドが無効になるのはなぜですか????

水平/垂直配置をストレッチに設定するという提案されたソリューションを試しましたが、何も変わりません。

4

1 に答える 1

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>

このようにコンテンツコントロールでチェックボックスをラップすると、問題が解消されます!

于 2010-11-03T20:36:08.847 に答える