我有一个界面
public interface IProperty
{
string Name { get; }
}
及其明确的实施
public class Parameter : IProperty
{
private readonly string m_name;
public Parameter(string name) { m_name = name; }
string IProperty.Name { get { return m_name; } }
}
我有 DataGrid ,显示 ObservableCollection< IProperty> 。唯一的列,即 DataGridTextColumn 是通过属性 SortMemberPath =“(这个:IProperty.Name)”对行进行排序(我明白了绑定到显式成员来自this forum thread的实现。
所以问题是:如何排序默认行?我试图在窗口构造函数中执行此操作:
var sortDescription = new SortDescription("(this:IProperty.Name)", ListSortDirection.Ascending);
m_dataGrid.Items.SortDescriptions.Add(sortDescription);
几乎没有运气。效果是:
有没有人知道为什么行从一开始就没有正确排序?
如果重要的话,我的目标是.NET Framework v3.5
答案 0 :(得分:1)
您应该将ListCollectionView
用作DataGrid的CollectionView
。然后通过ListCollectionView.CustomSort配置排序逻辑。请参见示例here。