나는 DataGridCheckBoxColumn
구현했습니다 :속성 값을 기준으로 확인란을 활성화 또는 비활성화하는 방법은 무엇입니까? 내 데이터 그리드에서
<DataGrid ItemsSource="{Binding Collection}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding Selected}"
ElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnEditingStyle}">
<DataGridCheckBoxColumn.CellStyle>
<Style TargetType="DataGridCell">
<EventSetter Event="CheckBox.Unchecked" Handler="Match_Unchecked"/>
<Style.Triggers>
<!-- Enabling -->
<DataTrigger Binding="{Binding DataContext.IsAdding,
RelativeSource={RelativeSource AncestorType=Window}}" Value="false">
<Setter Property="IsEnabled" Value="True" />
</DataTrigger>
<!-- Disabling -->
<DataTrigger Binding="{Binding DataContext.IsAdding,
RelativeSource={RelativeSource AncestorType=Window}}" Value="True">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style>
</DataGridCheckBoxColumn.CellStyle>
을 당신은 내가 내부의 내용으로 Cell
, 그래서 본질적 특성 IsAdding
이 거짓 인 경우, DataGridCheckBoxColumn
의 Style
에 DataTrigger
를 삽입 한 볼 수 그렇지 않으면 사용하지 않도록 설정해야합니다.
이것은 작동하지 않는 것 같습니다. Cell
도 사용할 수 있습니다. 이유가 무엇입니까?
스타일 대상을'DatGridCell' 대신'CheckBox'로 설정해 보았습니까? 귀하의 이벤트 설정자는 효과가 있습니까? – XAMlMAX
@XAMlMAX'CheckBox'는'DataGridCell' 안에 있고 하나의 스타일을 두 개 가질 수는 없습니다 – MrFantastic
그걸 이해하고 있지만 다른 스타일을 설정하라고 요구하지는 않습니다. 목표 타입을 변경하려고합니다. 그리고 당신의 이벤트 세터는 효과가 있습니까? – XAMlMAX