我在 WPF 中有一个数据网格,我正在绑定(bind)到一个对象。
我在那里有一个 DataGridCheckBoxColumn,我希望用户能够浏览并勾选他们想要的那些。问题是他们必须单击两次,一次用于选择,然后再次单击以选中/取消选中。你究竟如何关闭它,我一直在寻找方法来找到这个问题的答案。数据网格具有 SelectionMode 和 SelectionUnit 属性——它们都不接受“无”或“离开”
感谢任何帮助!我的代码在下面供引用
<my:DataGrid Margin="15" Name="dgPreview"
AutoGenerateColumns="False" CanUserSortColumns="True"
CanUserDeleteRows="True"
Background="White"
ColumnHeaderHeight="20"
VerticalScrollBarVisibility="Visible"
RowDetailsVisibilityMode="Visible"
>
<my:DataGrid.Columns>
<my:DataGridCheckBoxColumn MinWidth="50" Width="Auto" Header="Include" Binding="{Binding Include}" />
<my:DataGridTextColumn MinWidth="50" Width="Auto" Header="Override #" Binding="{Binding OverrideNumber}" />
<my:DataGridTextColumn MinWidth="220" Width="*" Header="Name" Binding="{Binding Name}" />
<my:DataGridTextColumn MinWidth="50" Width="Auto" IsReadOnly="True" Header="Preview" Binding="{Binding Preview}" />
</my:DataGrid.Columns>
</my:DataGrid>
最佳答案
第一次单击将单元格置于编辑模式,然后第二次单击允许您修改复选框。您可以使用 DataGridTemplateColumn 而不是 DataGridCheckBoxColumn 来更改此行为。将您的 DataGridCheckBoxColumn 替换为:
<my:DataGridTemplateColumn MinWidth="50" Width="Auto" Header="Include" SortMemberPath="Include">
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Style="{StaticResource DataGridCheckBoxStyle}" IsChecked="{Binding Path=Include}" />
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
DataGridCheckBoxStyle 只是让 CheckBox 在 DataGrid 中看起来更漂亮:
<Style x:Key="DataGridCheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="8,0,3,0" />
</Style>
关于c# - WPF 工具包 Datagrid - 如何关闭选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1225836/