如何在WPF ListBox中排序?

Ful*_*oof 5 .net c# sorting wpf event-handling

C#4.0 WPF应用程序,请参阅下面的代码,在启动时显示:

<code>btnSort_Click()</code>:  </p>

<p><img rel=

我怎样才能按顺序排序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));
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

更新:
嗯,我只是按照文章"排序WPF ListBox项目"

那么,我按照属性"内容"进行排序的顺序是什么,以及该属性"内容"在哪里,我想知道(试图将其改为任意"fff"而不是"内容"已经变得相同,如第二个截图,结果?

Bla*_*hma 22

由于您要对字符串列表进行排序,因此不要指明属性名称(SortDescription的第一个参数):

listBox1.Items.SortDescriptions.Add(
            new System.ComponentModel.SortDescription("",
            System.ComponentModel.ListSortDirection.Ascending));
Run Code Online (Sandbox Code Playgroud)


Jeb*_*han 6

YOULISTBOX.Items.SortDescriptions.Clear(); 
YOULISTBOX.Items.SortDescriptions.Add( new System.ComponentModel.SortDescription("NAME", System.ComponentModel.ListSortDirection.Ascending));
Run Code Online (Sandbox Code Playgroud)

以确保它每次更新


小智 5

对 wpf 组合框或列表框进行排序很容易 - 但请记住包含 Imports System.ComponentModel

要按字母顺序排序,只需

MylistBox.Items.SortDescriptions.Add(
    New SortDescription("", ListSortDirection.Ascending))
Run Code Online (Sandbox Code Playgroud)

或者

MyComboBox.Items.SortDescriptions.Add(
    New SortDescription("", ListSortDirection.Ascending))
Run Code Online (Sandbox Code Playgroud)