2011-07-06 14 views
2

何らかの条件に基づいてチェックボックスを含むセルを無効にしたい。これを達成しました。すなわち、チェックボックスがぼやけて見えなくなりましたが、クリックするとチェックボックスがオンになります。つまり、実際に無効になっていません。以下は、私はwpfの何らかの条件に基づいて、DataGridのセルでチェックボックスを無効にする

<toolkit:DataGridCheckBoxColumn Header="Del?" Binding="{Binding DeleteFlag, Mode=Default}" Width="45" IsReadOnly="True" > 
    <toolkit:DataGridCheckBoxColumn.ElementStyle> 
     <Style TargetType="{x:Type CheckBox}"> 
      <Setter Property="IsEnabled" Value="{Binding Path=SortPos, Converter={x:Static my:RowReadOnlyConverter.Instance}}" /> 
     </Style> 
    </toolkit:DataGridCheckBoxColumn.ElementStyle> 
</toolkit:DataGridCheckBoxColumn> 

「SortPos」は上記で強調XAMLで

を試みたコードであること基づいてブール値を返しIValueConverterインタフェースを実装する「RowReadOnlyConverter」クラス整数値を送信します。いくつかの状態で。これは正常に動作しますが、上記のようにチェックボックスは無効になりません。私はまた、 "IsEnabled"の代わりに "IsHitTestVisible"を試しました。誰かが動作するかもしれない他のプロパティまたは上記以外の他のソリューションを知っていますか?

"RowReadOnlyConverter"クラスを見たり、動作のスクリーンショットが必要な場合はお知らせください。ちょうどXAMLファイルに次のように書く

答えて

3

はisstopprocessを..here、チェックボックス欄で編集可能です。このコラムisstopprocess列に基づいて別の列がdisabiling..okです..です

<my:DataGridTemplateColumn> 
    <my:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <CheckBox Name="chkIstopProcess" IsChecked="{Binding Path=IS_STOP_PROCESS}" IsEnabled="{Binding Path=IsEditable}" MinWidth="50"></CheckBox> 
     </DataTemplate> 
    </my:DataGridTemplateColumn.CellTemplate> 
</my:DataGridTemplateColumn> 
関連する問題