Как ограничить работу клавиатуры для изменения значения флажка?

Я загрузил флажок в ячейку DataGrid настраиваемого столбца, я хотел бы ограничить операцию редактирования для этого столбца, чтобы настроить внешнюю настройку столбца, а затем установить для свойства флажка IsHitTestVisible значение false, чтобы ограничить операцию редактирования. для флажка с помощью мыши. Но я могу изменить статус флажка с помощью клавиатуры (пробел). Как этого избежать и сделать флажок полностью в недоступном для редактирования состоянии.

Фрагмент кода

< CustomDataGrid x:Name="dataGrid"
                   Editing="True" IsReadOnly="True"
                   Grouping="True" 
                   AutoPopulateColumns="False"
                   DataSource="{Binding Path=OrdersDetails}">
   < CustomDataGrid.Columns>
//I like to restrict the editing for the Closed column, Like IsReadOnly property of the Text-Box,
I am able to achieve this using the IsHitVisible as false,This helps only for mouse click But I am not able to restrict the key opeartion 
           <MyDataGridCheckBoxColumn Text="Closed"  Items="{Binding IsClosed}" />
   < CustomDataGrid.Columns>
 <CustomDataGrid/>
`

1 ответ

Пока неясно, как все ваши пользовательские столбцы и требования. Это должно быть в состоянии решить с помощью шаблона для данного столбца. Я смоделировал быстрый пример:

    <DataGrid ItemsSource="{Binding Tester}" Width="280">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Name" Width="100" IsReadOnly="True" Binding="{Binding Name}"/>
            <DataGridTextColumn Header="Value" Width="100" IsReadOnly="True" Binding="{Binding Value}"/>
            <DataGridTemplateColumn Header="Checked" Width="80">
                <!-- Should be able to put a similar Template on MyDataGridCheckBoxColumn-->
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox IsChecked="{Binding IsChecked}" IsHitTestVisible="False">
                        </CheckBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

При этом я не могу изменить флажок с помощью мыши и клавиатуры.

Другие вопросы по тегам