如何在 UWP 上创建自定义 ListView
How to create a custom ListView on UWP
我已经在 C# 上设置了我的 ListView,问题是 XAML。我当前的代码是这样工作的:
<ListView x:Name="List" ItemsSource="{Binding}" SelectionChanged="List_SelectionChanged">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Margin="11" Width="460">
<StackPanel Orientation="Vertical" >
<Image Width="100" Height="100"
Source="{Binding Way}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但我想做这样的事情:
对于您的场景,我认为您可以使用 GridView
而不是 ListView
。 GridView 按行和列显示数据集合,而 ListView 显示垂直堆叠的集合。
默认情况下,GridView
使用 ItemsWrapGrid
as its ItemsPanel
, while using ItemsWrapGrid
, we can set the ItemsWrapGrid.MaximumRowsOrColumns
property with ItemsWrapGrid.Orientation
属性 将最大列限制为 2
。
例如:
<GridView ItemsSource="{Binding}" SelectionChanged="GridView_SelectionChanged">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Width="460" Margin="11">
<StackPanel Orientation="Vertical">
<Image Width="100" Height="100" Source="{Binding Way}" />
</StackPanel>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid MaximumRowsOrColumns="2" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
我已经在 C# 上设置了我的 ListView,问题是 XAML。我当前的代码是这样工作的:
<ListView x:Name="List" ItemsSource="{Binding}" SelectionChanged="List_SelectionChanged">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Margin="11" Width="460">
<StackPanel Orientation="Vertical" >
<Image Width="100" Height="100"
Source="{Binding Way}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但我想做这样的事情:
对于您的场景,我认为您可以使用 GridView
而不是 ListView
。 GridView 按行和列显示数据集合,而 ListView 显示垂直堆叠的集合。
默认情况下,GridView
使用 ItemsWrapGrid
as its ItemsPanel
, while using ItemsWrapGrid
, we can set the ItemsWrapGrid.MaximumRowsOrColumns
property with ItemsWrapGrid.Orientation
属性 将最大列限制为 2
。
例如:
<GridView ItemsSource="{Binding}" SelectionChanged="GridView_SelectionChanged">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Width="460" Margin="11">
<StackPanel Orientation="Vertical">
<Image Width="100" Height="100" Source="{Binding Way}" />
</StackPanel>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid MaximumRowsOrColumns="2" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>