C#4.0 WPF应用程序,请参阅下面的代码,在启动时显示:
点击带有
btnSort_Click()
点击事件处理程序的排序按钮后abd:
我如何按顺序排序aaa,bbb,ccc?
C#代码:
public MainWindow()
{
InitializeComponent();
listBox1.Items.Add("ccc");
listBox1.Items.Add("aaa");
listBox1.Items.Add("bbb");
}
private void btnSort_Click(object sender, RoutedEventArgs e)
{
listBox1.Items.SortDescriptions.Add(
new System.ComponentModel.SortDescription("Content",
System.ComponentModel.ListSortDirection.Ascending));
}
private void listBox1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
listBox1.Items.RemoveAt
(listBox1.Items.IndexOf(listBox1.SelectedItem));
}
XAML:
<Window x:Class="WpfApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListBox Height="100" HorizontalAlignment="Left" Margin="8,43,0,0" Name="listBox1" VerticalAlignment="Top" Width="120" MouseDoubleClick="listBox1_MouseDoubleClick" />
<Button Content="Sort" Height="23" HorizontalAlignment="Left" Margin="140,94,0,0" Name="btnSort" VerticalAlignment="Top" Width="75" Click="btnSort_Click" />
</Grid>
</Window>
更新
好吧,我只是按照文章"Sorting a WPF ListBox Items"
那么,我按照属性“内容”排序的顺序是什么,以及该属性“内容”在哪里,我想知道(试图将其更改为任意“fff”而不是“内容”获得相同,如第二次截图,结果?
答案 0 :(得分:22)
由于您要对字符串列表进行排序,请不要指明属性名称(SortDescription的第一个参数):
listBox1.Items.SortDescriptions.Add(
new System.ComponentModel.SortDescription("",
System.ComponentModel.ListSortDirection.Ascending));
答案 1 :(得分:4)
对wpf组合框或列表框进行排序很容易 - 但请记住包含Imports System.ComponentModel
。
按字母顺序排序,只需
MylistBox.Items.SortDescriptions.Add(
New SortDescription("", ListSortDirection.Ascending))
或
MyComboBox.Items.SortDescriptions.Add(
New SortDescription("", ListSortDirection.Ascending))
答案 2 :(得分:4)
YOULISTBOX.Items.SortDescriptions.Clear();
YOULISTBOX.Items.SortDescriptions.Add( new System.ComponentModel.SortDescription("NAME", System.ComponentModel.ListSortDirection.Ascending));
确保每次都更新
答案 3 :(得分:3)
其他信息:
您排序的项目可以是任何DependencyProperty
。因此,假设您有一个自定义类的ObservableCollection
绑定到ListBox控件的ItemsSource
。自定义类可以具有任意数量的依赖项属性,您可以使用这些属性进行排序。您只需将依赖项属性的名称(作为string
)放入新的SortDescription
参数中。
向控件添加多个SortDescription
将执行多变量排序。
依赖项属性可以表示任何类型的变量,而不仅仅是字符串。我有一个示例,我首先按bool
排序,然后按int
排序,最后按DateTime
排序。