相关疑难解决方法(0)

在XAML中排序DataGrid时,未反映ColumnHeader箭头

我有一个DataGrid,在XAML中定义了一些排序,如下所示:

<CollectionViewSource x:Key="DefaultSort" Source="{Binding SearchResults}">
    <CollectionViewSource.SortDescriptions>
        <scm:SortDescription PropertyName="ExternalOrgNo" Direction="Ascending"/>
        <scm:SortDescription PropertyName="ExternalBranchNumber" Direction="Ascending"/>
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource>
Run Code Online (Sandbox Code Playgroud)

排序正确应用于DataGrid,但没有指示网格上的排序.

查看后面代码中的视图,我看到了集合中的SortDescriptions,我尝试刷新视图,但它没有用.

如何让ColumnHeader箭头最初正确反映视图的SortDescription集合的状态?

更新:我找到了答案.我将SortDirection添加到DataGrid中的DataGridTextColumn.这添加了ColumnHeader箭头.

<DataGridTextColumn Header="Ext Firm #" Binding="{Binding ExternalOrgNo}" DisplayIndex="4" SortDirection="Ascending" Visibility="Visible" />
<DataGridTextColumn Header="Ext Branch #" Binding="{Binding ExternalBranchNumber}" DisplayIndex="5" SortDirection="Ascending" Visibility="Visible" />
Run Code Online (Sandbox Code Playgroud)

.net sorting wpfdatagrid

7
推荐指数
1
解决办法
4532
查看次数

WPF DataGrid:指定默认排序

我有一个UserControl,它基本上只包含一个DataGrid。在此DataGrid中,我有一个事件列表(严重性-日期-消息)。用户控制是通过结合ViewModelLocatorMVVMLight Toolkit

我添加了两件事:

在我的UserControl资源中:

<UserControl.Resources>
    <CollectionViewSource x:Key="SortedEvents" Source="{Binding Events}">
        <CollectionViewSource.SortDescriptions>
            <componentModel:SortDescription PropertyName="EventTime" Direction="Descending"/>
        </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

由DataGrid使用:

<DataGrid ItemsSource="{Binding Source={StaticResource SortedEvents}}" AutoGenerateColumns="False" >
Run Code Online (Sandbox Code Playgroud)

我也有SortedDirection设置DataGridTextColumn.SortDirection

<DataGridTextColumn Binding="{Binding EventTime}"  Header="Time" IsReadOnly="True" SortDirection="Descending"/>
Run Code Online (Sandbox Code Playgroud)

当我检查设计器时,我看到一个小箭头,表明DataGrid已正确排序。

但是,当我启动该应用程序时,列表未排序,箭头不在此处。如果我单击该列以对其进行排序,那么它将对所有内容正确地进行排序,只是默认值似乎无效。

我想念什么?(这个dataGrid / column甚至都没有命名,因此我无法尝试通过其他方式对其进行编辑)。

(最初,我只在SortDirection上使用DataGridTextColumn。结果相同)

c# sorting wpf datagrid

5
推荐指数
1
解决办法
4826
查看次数

标签 统计

sorting ×2

.net ×1

c# ×1

datagrid ×1

wpf ×1

wpfdatagrid ×1