Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中对包含网格控件的列表框进行排序#_C#_.net_Wpf_Xaml - Fatal编程技术网

C# 在C中对包含网格控件的列表框进行排序#

C# 在C中对包含网格控件的列表框进行排序#,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我正在编写一个应用程序,它将显示几个JPEG的缩略图,并在它们下面显示文件名。我想按文件名对这些文件进行排序。这些JPEG来自zip文件,我无法按顺序接收它们。我使用的列表框定义如下: <ListBox Name="listPanel1" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionMode="Multip

我正在编写一个应用程序,它将显示几个JPEG的缩略图,并在它们下面显示文件名。我想按文件名对这些文件进行排序。这些JPEG来自zip文件,我无法按顺序接收它们。我使用的列表框定义如下:

   <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>