【问题标题】:Show a Column Sorted by default in a DataGrid WPF XAML在 DataGrid WPF XAML 中显示默认排序的列
【发布时间】:2021-04-28 14:43:25
【问题描述】:

我正在尝试在 XAML 中的 DataGrid 中对列进行默认排序。 我尝试了几种方法,但都没有奏效。 我试过的最后一个是这个,它在我第一次运行程序时工作,但后来不知何故被否决了。

<DataGridTextColumn Header="Bar"
    Width="50"
    CanUserSort="True"
    HeaderStyle="{StaticResource CenterGridHeaderStyle}"
    Binding="{BindingBarName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
    SortDirection="Ascending">
    <DataGridTextColumn.CellStyle>
         <Style TargetType="DataGridCell">
              <Setter Property="TextBlock.TextAlignment" Value="Center" />
         </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

有什么想法吗? 谢谢

【问题讨论】:

  • 被什么和如何推翻?你如何设置ItemsSource
  • 源自动来自绑定,并且是双重格式。当我单击列标题时,它适用于正常排序。
  • 那么什么不起作用?请澄清您的问题、预期结果并描述当前行为。
  • 我想在程序运行时对列进行排序。就像默认排序一样。
  • 那你应该对源集合进行排序吗?

标签: c# wpf xaml datagrid


【解决方案1】:

设置DataGridColumn.SortDirection 实际上不会对列进行排序。它只是用于在标题中显示箭头指示符。

要对项目进行实际排序,您还应该在DataGrid 中添加SortDescription

dataGrid1.Items.SortDescriptions.Add(new SortDescription("BarName", ListSortDirection.Ascending));

【讨论】:

    猜你喜欢
    • 2012-02-16
    • 2015-06-22
    • 2015-05-13
    • 2018-05-05
    • 2015-04-14
    • 2016-09-18
    • 2017-06-09
    • 2015-08-17
    • 1970-01-01
    相关资源
    最近更新 更多