c# - WPF MVVM-以编程方式触发datagrid排序方向的箭头

标签 c# wpf mvvm datagrid

默认情况下,在加载DataGrid时,我的数据将按ProductName asc排序。但是,gridview的ProductName header 不会显示向上箭头图标。反正我是通过编程方式触发图标吗?

XAML:

<DataGrid x:Name="GridProduct" 
          ItemsSource="{Binding Path=ProductResult}" 
          Style="{StaticResource defaultDataGridStyle}" 
          CellStyle="{StaticResource defaultCellStyle}"
          ColumnHeaderStyle="{StaticResource defaultCellHeaderStyle}"> 
  <DataGrid.Columns>
       <DataGridTextColumn Header="Product Name" Binding="{Binding ProductName}" />
       <DataGridTextColumn Header="Product Price" Binding="{Binding ProducPrice}"/> 
  </DataGrid.Columns>
</DataGrid>

风格:
<Style x:Key="defaultCellHeaderStyle" TargetType="DataGridColumnHeader" BasedOn="{StaticResource MetroDataGridColumnHeader}">
    <Setter Property="FontSize" Value="16"></Setter>
    <Setter Property="Command" Value="{Binding Path=DataContext.SortCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
    <Setter Property="CommandParameter" Value="{Binding Path=Content, RelativeSource={RelativeSource Self}}"></Setter>
</Style>

<Style x:Key="defaultCellStyle" TargetType="DataGridCell" BasedOn="{StaticResource MetroDataGridCell}">
    <Setter Property="FontSize" Value="16"></Setter>
    <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
    <Setter Property="HorizontalAlignment" Value="Stretch"></Setter>
</Style>

MVVM:
public List<Product> ProductResult
{
    get
    {
        _productResult = _productResult.OrderBy(x => x.Name).ToList();
        return _productResult;
    }
}

最佳答案

将以下内容添加到DataGridTextColumn中:

SortDirection="Ascending" 

关于c# - WPF MVVM-以编程方式触发datagrid排序方向的箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50331237/

相关文章:

c# - 如何使用 Timer 平滑地移动 Label 文本?

c# - 将用户控件从解决方案资源管理器添加到 winform

wpf - Path中加号的Data值是多少

c# - 如何查找在wpf中选中的动态创建的CheckBox

mvvm - 使用 MVVM 模式打开一个关于框

c# - 创建以 'object' 类型运行的扩展方法是否会影响性能?

c# - 将一个对象转换为另一个对象(LINQ 样式)

c# - WPF Prism 在模块中加载 XML

c# - 多个 View 的相同命令

android - 在 fragment 和 Activity 中观察 LiveData 实例