C# 在C中对包含网格控件的列表框进行排序#
我正在编写一个应用程序,它将显示几个JPEG的缩略图,并在它们下面显示文件名。我想按文件名对这些文件进行排序。这些JPEG来自zip文件,我无法按顺序接收它们。我使用的列表框定义如下:C# 在C中对包含网格控件的列表框进行排序#,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我正在编写一个应用程序,它将显示几个JPEG的缩略图,并在它们下面显示文件名。我想按文件名对这些文件进行排序。这些JPEG来自zip文件,我无法按顺序接收它们。我使用的列表框定义如下: <ListBox Name="listPanel1" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionMode="Multip
<ListBox Name="listPanel1" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionMode="Multiple" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Name="wrapPanel1" IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<TextBox Height="152" Name="tb_Messages" Width="244" />
</ListBox>
这个方法的一个优点是,当我选择一个图像时,图像和文件名都会高亮显示
如何根据文件名对列表框进行排序
这是我的第一个WPF应用程序,所以很可能我用了一种完全错误的方式 不要在代码中创建UI!除非您正在创建用户控件
列表框
并将其数据源绑定到表示图片的对象集合
<ListBox ItemSource="{Binding Pictures}"/>
有关这方面的更多信息,您可以找到或。方法是将所有文件读入一个列表,对列表进行排序,然后将它们插入列表面板。我没有经验告诉你是否用WPF做了正确的事情。谢谢Karel,这些链接和你的例子提供了一些有用的信息。我以后会试试看它是否适合我。我所关心的一个问题是,我一次只填充一个列表框,因为图片是通过回调机制未归档的。我希望显示器能反映出这一点,这样用户就可以知道发生了什么。他们可以在每次添加图像时进行排序,或者我可以在过程结束时进行排序,这两种方法对我都适用。您是否需要做一些事情来调用排序?我已经实现了这个模板,并为实现IEnumerated的缩略图创建了一个类,但我仍然按照添加内容的顺序看到它。明白了。添加了
listPanel1.Items.SortDescriptions.Add(新的System.ComponentModel.SortDescription(“_文件名”,System.ComponentModel.ListSortDirection.升序))代码>提取完成后,然后对列表框项目进行排序。
<ListBox ItemSource="{Binding Pictures}"/>
public IEnumerable<Picture> Pictures
{
get { return _picturesLoadedFromZip.OrderBy(whatever); }
}
<ListBoxItem Background="LightCoral" Foreground="Red"
FontFamily="Verdana" FontSize="12" FontWeight="Bold">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding PathToFile}" Height="30"></Image>
<TextBlock Text="{Binding FileName}"></TextBlock>
</StackPanel>
</ListBoxItem>