c# - WPF 工具包 Datagrid - 如何关闭选择?

标签 c# wpf xaml datagrid wpftoolkit

我在 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/

相关文章:

c# - 制作自己的 Windows 8 应用程序主题

c# - 在 Windows 上拦截/重定向传出的 http 连接

c# - 为任意图像实现可点击的 map

c# - WPF 内存泄漏

c# - WPF - ComboBox SelectedItem 未绑定(bind)

c# - 应用程序标题栏消失了 - UWP 应用程序

c# - 当静态属性值更改时, View 未收到通知

c# - 如何将 sbyte 值存储在字节变量中?

c# - 如何创建只有复选框的表格?

c# - 使用 LINQ to Entities 进行自然排序