Powershell 在数据网格上设置默认排序

Powershell set default sorting on datagrid

所以我有这个 wpf 数据网格,它的列在 xaml 文件中定义, 我以编程方式检查数据,并在按下按钮后逐一插入行。

我正在尝试了解如何填充它并设置排序(与我单击列的排序相同 header)

在winforms中我曾经添加:

$myDataGrid.Sort($myDataGrid.Columns[3],'Ascending')

在我的填充函数之后。

我如何在 WFP(和 powershell)中复制它?

我试过了:

$Datagrid.Items.SortDescription.Add([pscustomobject]@{ColumnName="MyColumn";SortDirection="ListSortDirection.Ascending"})

但是我遇到了一些麻烦,因为我只找到了 c# 解释并且尝试适应是行不通的....

试试这个:

$sortDescription = New-Object System.ComponentModel.SortDescription('MyColumn', 'Ascending')
$Datagrid.Items.SortDescriptions.Add($sortDescription)

在C#中的解决方案是这样的,我希望这可以帮助你理解WPF是如何工作的。

要像单击第 3 列一样对 DataGrid 进行排序,您必须处理从 WPF 创建的 DataView。在此示例中,每次自动生成列时都会对 DataGrid 进行排序,但您可以 select 其他事件,例如 DataGrid1_Loaded

using System.Windows.Data;

private void DataGrid1_AutoGeneratedColumns(object sender, EventArgs e)
    {
        (((DataGrid)sender).ItemsSource as DataView).Sort = DataGrid1.Columns[3].Header.ToString();
    }