Как ограничить работу клавиатуры для изменения значения флажка?
Я загрузил флажок в ячейку 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>
При этом я не могу изменить флажок с помощью мыши и клавиатуры.