C# 在ItemsControl中按从右上到左下的顺序排列项目
我试图在WPF应用程序的一个视图中的ItemsControl中设置一个列表 问题是我需要控件中显示的项目的其他顺序。 通常,items控件从左到右和从上到下显示项目:C# 在ItemsControl中按从右上到左下的顺序排列项目,c#,wpf,xaml,C#,Wpf,Xaml,我试图在WPF应用程序的一个视图中的ItemsControl中设置一个列表 问题是我需要控件中显示的项目的其他顺序。 通常,items控件从左到右和从上到下显示项目: 1 2 3 4 5 6 7 8 9 10 11 12 但是,我希望以另一种方式显示我的项目-从右上到左下-如下所示: 11 9 7 5 3 1 12 10 8 6 4 2 我当前的ItemsControl是: Grid.Column="1" Bord
1 2 3 4 5 6
7 8 9 10 11 12
但是,我希望以另一种方式显示我的项目-从右上到左下-如下所示:
11 9 7 5 3 1
12 10 8 6 4 2
我当前的ItemsControl是:
Grid.Column="1"
BorderThickness="1"
BorderBrush="{DynamicResource WindowTitleColorBrush}">
<ItemsControl ItemsSource="{Binding Truck.Containers}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="2" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Border>
Grid.Column=“1”
BorderThickness=“1”
BorderBrush=“{DynamicSource WindowTitleColorBrush}”>
我不能仅仅通过在viewmodel中降序来重新排列我的列表,因为它将以12开始,以1结束,而不是11-2。
有没有其他方法可以按我想要的顺序显示我的列表?我认为您可以遵循以下三种解决方案之一:
CollectionViewSource
-在那里进行自定义订购
面板
,该面板可根据需要对项目进行排序,并将其用作项目span模板
。要创建自定义面板,请创建自定义类并从panel
或UniformGrid
继承。而不是覆盖两种方法:
您还可以查看。我认为您可以遵循以下三种解决方案之一:
CollectionViewSource
-在那里进行自定义订购
面板
,该面板可根据需要对项目进行排序,并将其用作项目span模板
。要创建自定义面板,请创建自定义类并从panel
或UniformGrid
继承。而不是覆盖两种方法:
您还可以查看。只是一个在代码中执行此操作的建议:将列表拆分为偶数或奇数,按降序排列这两个列表,然后将前两个列表中的元素添加到绑定到ItemsControl的第三个列表中 建议在代码中这样做:将列表拆分为偶数或奇数,通过降序将这两个列表排序,然后将前两个列表中的元素添加到绑定到ItemsControl的第三个列表中 最好的方法是在ViewModel中按您想要的方式订购项目。解决方案的一半位于UniformGrid上的
FlowDirection=“RightToLeft”
。另一半您可以通过创建所述的派生类来解决,最好的方法是按照您希望在ViewModel中的方式对项目进行排序。另一半解决方案位于UniformGrid上的FlowDirection=“RightToLeft”
。另一半可以通过如下所述生成派生类来解决