WPF工具包Datagrid - 如何关闭选择功能?

13 浏览
0 Comments

WPF工具包Datagrid - 如何关闭选择功能?

我在WPF中有一个数据网格,我将其绑定到一个对象上。

我在这里有一个DataGridCheckBoxColumn,我希望用户能够通过点击来选择他们想要的那些。问题是他们需要点击两次,一次是选择,然后再次来勾选/取消勾选。你到底要如何关闭这个功能呢,我已经搜索了很久也没有找到答案。数据网格有SelectionMode和SelectionUnit属性 - 但是都不接受'none'或'go away'。

非常感谢任何帮助!以下是我参考的代码:

AutoGenerateColumns="False" CanUserSortColumns="True"

CanUserDeleteRows="True"

Background="White"

ColumnHeaderHeight="20"

VerticalScrollBarVisibility="Visible"

RowDetailsVisibilityMode="Visible"

>

0
0 Comments

问题出现的原因是在WPF Toolkit Datagrid中,无法直接将选择功能关闭。解决方法是使用XAML来替换DataGridCheckBoxColumn的定义,使用DataGridTemplateColumn来实现自定义的复选框列。以下是解决方法的代码示例:


    
        
            
        
    

这个解决方法的优点是只使用了XAML,避免了在代码后端添加额外的UI逻辑,并且符合MVVM的思想。另外,还有一个用户指出在他的情况下上述解决方法无效的问题,但是通过添加Mode=TwoWay属性解决了这个问题。

0
0 Comments

在WPF Toolkit DataGrid中,如何关闭选择功能?

原因:

问题出现的原因是在第一次点击单元格时,单元格进入编辑模式,然后第二次点击才能修改复选框。这是因为使用了DataGridCheckBoxColumn导致的。

解决方法:

可以通过使用DataGridTemplateColumn来改变这种行为。将DataGridCheckBoxColumn替换为下面的代码:


   
      
         
      
   

DataGridCheckBoxStyle是为了在DataGrid中让复选框显示得更好看一些:


对我来说在WPF 4.0中不起作用。不过谢谢提供样式。

对我来说在WPF 4.0中起作用。但是,编译时和设计器中会出现一个警告,关于样式中的"BasedOn"标签:The Resource "{x:Type CheckBox}" was not found。我只是将其删除,但它仍然起作用。

根据之前的评论,移除样式引用。代码应该像这样:


    
        
            
        
    

以上是关于如何在WPF Toolkit DataGrid中关闭选择功能的原因和解决方法的整理。

0