sve*_*vit 3 c# wpf datagrid mvvm viewmodel
DataGridCheckBoxColumn的默认行为是用户必须单击两次才能更改复选框值.在WPF DataGrid主题中如何执行单击复选框选择有几个解决方案可以工作,但是有一个问题 - 你在代码后面有一个viewmodel对象,它实现了IEditableObject接口,然后该EndEdit方法不执行.
知道如何进行单击工作并保留IEditableObject功能吗?
您可以处理该GotFocus事件DataGrid并明确进入编辑模式并选中/取消选中CheckBox:
private void dg_GotFocus(object sender, RoutedEventArgs e)
{
DataGridCell cell = e.OriginalSource as DataGridCell;
if (cell != null && cell.Column is DataGridCheckBoxColumn)
{
dg.BeginEdit();
CheckBox chkBox = cell.Content as CheckBox;
if (chkBox != null)
{
chkBox.IsChecked = !chkBox.IsChecked;
}
}
}
Run Code Online (Sandbox Code Playgroud)
<DataGrid x:Name="dg" AutoGenerateColumns="False" GotFocus="dg_GotFocus">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}" />
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2869 次 |
| 最近记录: |