我希望能够选择单元格并选择行。为了选择单元格,我设置了 SelectionUnit="Cells" 和 SelectionMode="Extended"。它工作正常。但现在我需要能够选择行。用户可以清楚地通过行标题(在行的左侧)选择行。
如何轻松实现?
我希望能够选择单元格并选择行。为了选择单元格,我设置了 SelectionUnit="Cells" 和 SelectionMode="Extended"。它工作正常。但现在我需要能够选择行。用户可以清楚地通过行标题(在行的左侧)选择行。
如何轻松实现?
快速解决:
private void RadGridView_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if(e.RightButton == MouseButtonState.Pressed)
return;
var source = e.OriginalSource as DependencyObject;
if(source == null)
return;
var cell = source.FindVisualParent<GridViewCell>();
if(cell != null)
{
((RadGridView)sender).SelectionUnit = GridViewSelectionUnit.Cell;
}
else
{
var row = source.FindVisualParent<GridViewRow>();
if(row != null)
{
((RadGridView)sender).SelectionUnit = GridViewSelectionUnit.FullRow;
}
}
}
开箱即用的 RadGridView 将为您提供仅将选择单元设置为 Cells 或 FullRow 的功能。它不能为您提供这两种条件。
您可以通过将 SelectionUnit 设置为 Cell 并将 SelectionMode 设置为 Extended 来提供扩展的单元格选择。
现在为了进行行选择,您必须将 SelectionUnit 更改为 FullRow。
这就是 RadGridView 的工作原理。
有关更多信息文档,我建议您查看有关此功能的以下文档:
http://www.telerik.com/help/wpf/gridview-selection-basics.html
http://www.telerik.com/help/wpf/gridview-multiple-selection.html
只需在定义列时添加 telerik gridviewselectcolumn。此列将复选框添加到每行和标题。通过单击标题复选框将选择所有行。
<telerik:RadGridView.Columns>
<telerik:GridViewSelectColumn HeaderCellStyle="{StaticResource GridViewHeaderCellStyle1}"/>
<telerik:GridViewDataColumn Header="Column1" HeaderCellStyle="{StaticResource GridViewHeaderCellStyle1}" MinWidth="150"
DataMemberBinding="{Binding XYZ}" />
</telerik:RadGridView.Columns>