初始 DataGrid 排序

发布于 2024-12-28 06:16:00 字数 203 浏览 0 评论 0原文

我有一个包含 WPF 工具包 DataGrid 的用户控件。该控件在我的应用程序的许多不同地方使用。网格不知道将显示的数据类型。有没有办法首先按第一列按升序对网格进行排序,无论网格填充什么数据?我认为我无法使用 CollectionViewSource,因为我不知道绑定到第一列的属性的 PropertyName

I have a user control that contains a WPF toolkit DataGrid. This control is used in many different places in my app. The grid has no knowledge as to the type of data that will show. Is there a way to initially sort the grid by the first column in ascending order no matter what data the grid is populated with? I don't think I can use a CollectionViewSource because I don't know the PropertyName of the property bound to the first column.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

渡你暖光 2025-01-04 06:16:00

您可以挂钩事件:

dataGrid.AutoGeneratedColumns += dataGrid_AutoGeneratedColumns;

并对第一列进行排序:

void dataGrid_AutoGeneratedColumns(object sender, EventArgs e)
{
    var firstCol = dataGrid.Columns.First();
    firstCol.SortDirection = ListSortDirection.Ascending;
    dataGrid.Items.SortDescriptions.Add(new SortDescription(firstCol.SortMemberPath, ListSortDirection.Ascending));
}

我建议您创建一个派生的单独的 DataGrid 控件,将此逻辑放在那里并使用新控件以避免每次都重复代码。

public class CustomDataGrid : DataGrid
{
    public DynamicDataGrid()
    { ... }

    ...
}

You could hook to an event:

dataGrid.AutoGeneratedColumns += dataGrid_AutoGeneratedColumns;

and sort the first column:

void dataGrid_AutoGeneratedColumns(object sender, EventArgs e)
{
    var firstCol = dataGrid.Columns.First();
    firstCol.SortDirection = ListSortDirection.Ascending;
    dataGrid.Items.SortDescriptions.Add(new SortDescription(firstCol.SortMemberPath, ListSortDirection.Ascending));
}

I would suggest you to create a derived separate DataGrid control, placing this logic there and using the new control to avoid repeating the code every time.

public class CustomDataGrid : DataGrid
{
    public DynamicDataGrid()
    { ... }

    ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文