myListBox.Items.SortDescriptions.Add( 新的SortDescription(“BoolProperty”,ListSortDirection.Descending));
此排序仅适用于基础项目的字符串属性。不是布尔值?这有什么理由吗?
谢谢!
更新
是的,你的榜样确实有效。但是我的例子出了什么问题?public class A
{
public bool Prop;
}
List<A> l = new List<A>() {
new A() { Prop = true },
new A() { Prop = false },
new A() { Prop = true },
};
ICollectionView icw = CollectionViewSource.GetDefaultView(l);
icw.SortDescriptions.Add(new SortDescription("Prop", ListSortDirection.Ascending));
icw.Refresh();
答案 0 :(得分:3)
嗯,我似乎可以在我的列表示例中的布尔属性上添加一个SortDescription!
<Window x:Class="WpfApplication3.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<ListBox x:Name="box" DisplayMemberPath="Test" />
</Grid>
</Window>
代码背后:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
//4 instances, each with a property Test of another boolean value
box.ItemsSource = new[] {
new {Test = true},
new {Test = false},
new {Test = false},
new {Test = true}
};
box.Items.SortDescriptions.Add(new SortDescription("Test", ListSortDirection.Descending));
}
}
public class BooleanHolder
{
public bool Test { get; set; }
}
像魅力一样工作;)
也许你拼错了SortDescription对象中的属性名称?希望这有帮助
在您的示例中,您将Prop定义为字段。使它成为一个属性,它将工作;)
public class A
{
public bool Prop { get; set; }
}