如何对绑定的ObjectDataProvider集合进行排序?

时间:2014-01-27 09:56:50

标签: c# wpf sorting binding enums

我使用ListBox的{​​{1}}值填充Description。它们以Enum的索引顺序显示,但我希望它们按描述排序。所以我在Enum添加了SortDescription,但它不起作用。

ListBox

我还尝试向ObjectDataProvider odp = new ObjectDataProvider() { IsInitialLoadEnabled = false, MethodName = "GetValues", ObjectType = typeof(Enum), }; odp.MethodParameters.Add(this.EnumType); odp.Refresh(); Binding b = new Binding() { Source = odp }; listBox.SetBinding(ListBox.ItemsSourceProperty, b); listBox.Items.SortDescriptions.Add(new SortDescription()); 添加一个属性名称,但我不知道哪一个(我尝试了'Value'和'Description')。

SortDescription包裹在ObjectDataProvider中并对该集合进行排序也无济于事。

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

ObjectDataProvider的目的是什么,如果您的绑定是在代码中?

var sortedValues = Enum.GetValues(typeof(MyEnum))
    .Cast<MyEnum>()
    .OrderBy(v => v.ToString())
    .ToArray();

Binding b = new Binding() { Source = sortedValues };