отключение флажка в ячейке в сетке данных на основе некоторого условия в wpf - PullRequest
2 голосов
/ 06 июля 2011

Я хочу отключить ячейку, содержащую флажок, на основании какого-либо условия. Я достиг этого, то есть флажок выглядит размытым и отключенным, но когда я нажимаю на него, флажок проверяется, то есть фактически не отключается. Ниже приведен код, который я опробовал

В xaml

<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», выделенный выше, отправляет целочисленное значение в класс «RowReadOnlyConverter», который реализует интерфейс IValueConverter, который возвращает значение bool на основе некоторого условия. Хотя это работает нормально, флажок не отключается, как указано выше. Я также попробовал «IsHitTestVisible» вместо «IsEnabled». Кто-нибудь знает о какой-либо другой собственности, которая может работать, или о любом другом решении, кроме вышеупомянутого?

Пожалуйста, дайте мне знать, если вам нужно взглянуть на класс "RowReadOnlyConverter" или хотите сделать скриншот поведения.

1 Ответ

3 голосов
/ 26 июня 2012

просто напишите так в файле Xaml .. здесь isstopprocess - это столбец флажка, доступен для редактирования другой столбец, основанный на этом столбце. Столбец isstopprocess отключается..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>
...