下面是C# 4.0的WPF应用程序代码,启动时显示:
点击Sort按钮后,使用btnSort_Click()
单击事件处理程序,如下所示:
如何按照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>
更新:
好的,我只是遵循了这篇文章“对 WPF ListBox 项进行排序”
所以,我按照“Content”属性排序,那么这个属性“Content”在哪里呢?我想知道(试图将其更改为任意的“fff”而不是“Content”,但得到了相同的结果,如第2张截图所示)。
SortDescription()
方法的第一个参数是什么,为什么在提供任意的propertyName
后不会出现错误,以及为什么顺序会改变(根据哪些排序规则)? - Fulprooffff
并在 Visual Studio 中打开您的输出窗口
,您将看到一个绑定错误,如下所示:System.Windows.Data Error: 40 : BindingExpression path error: 'fff' property not found on 'object' ''String' (HashCode=536926232)'。
- Blachshma