【问题标题】:Xceed DataGrid SelectedItem issueXceed DataGrid SelectedItem 问题
【发布时间】:2011-02-09 20:43:18
【问题描述】:

在我的项目中,我有一个 Xceed 数据网格,它绑定到具有许多记录和记录详细信息的数据源。我正在尝试创建一个上下文菜单选项,允许用户在特定列中搜索特定详细信息。虽然我已经成功完成了该功能,但有一个 UI 部分给我带来了一些麻烦,因为当我在 C# 中选择行时,如果该行不在视图中,则该行永远不会被关注。因此,用户必须向上和向下滚动以查找具有扩展详细信息的行。

我可以设置 SelectedRow 并像这样展开详细信息:

this.grid.AutoFilterValues[userColumn].Clear();
this.grid.AutoFilterValues[userColumn].Add(userValue);
if (this.creditLinesDataGridControl.Items.Count > 0)
{
    this.grid.SelectedItem = this.grid.Items[0];
    this.grid.ExpandDetails(this.grid.Items[0]);
}
else
{
    MessageBox.Show("Value not found in column: " + userColumn);
}
this.grid.AutoFilterValues[userColumn].Clear();

其中 userColumn 和 userValue 是之前在方法中设置的。

设置 SelectedItem 并展开详细信息后,如何使网格聚焦在行上?

谢谢,

帕特里克

【问题讨论】:

    标签: c# wpf datagrid xceed xceed-datagrid


    【解决方案1】:

    我不知道 Xceed DataGrid 的 API,但通常此类类提供像 ScrollIntoView(...) 这样的方法。谷歌搜索了一下,我发现 Xceed 的 DataGrid 显然提供了一个名为BringItemIntoView(...) 的方法。你试过那个吗?
    例如,在 Xceed 论坛的this thread 中,他们讨论了这种方法。

    【讨论】:

    • 效果很好!我想当我阅读 Xceed DataGrid 的方法时,我只是忽略了那个方法。非常感谢。
    • 补充:在调用BringItemIntoView()之前,我必须先添加对UpdateLayout()的调用。
    猜你喜欢
    • 2012-09-12
    • 2011-11-24
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 2020-11-08
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多