【问题标题】:How to create a custom ListView on UWP如何在 UWP 上创建自定义 ListView
【发布时间】:2016-06-24 14:50:06
【问题描述】:

我已经在 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>

但我想做这样的事情:

【问题讨论】:

  • 您能详细说明一下吗?前 2 个框应该是列表框中的一项吗?因为你的代码因为Source="{Binding Way}" OneWay TwoWay 而无法编译?
  • @KoryGill “方式”正在绑定到我的资产文件夹的路径,每个框都是我的列表视图的一项,我尝试使用 ListBox,但我无法使用“ItemTemplate”。这个应用程序是我想要的,但在这种情况下,他可能使用 GridRows here
  • 啊……这让我失望了。
  • @KoryGill 对不起?
  • 我认为对于 UWP,您需要 VariableSizedWrapGrid。

标签: c# xaml uwp win-universal-app uwp-xaml


【解决方案1】:

对于您的场景,我认为您可以使用GridView 而不是ListViewGridView 在行和列中显示数据集合,而 ListView 显示垂直堆叠的集合。

默认情况下,GridView 使用ItemsWrapGrid 作为其ItemsPanel,而使用ItemsWrapGrid,我们可以将ItemsWrapGrid.MaximumRowsOrColumns 属性与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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2017-08-10
    • 2016-09-22
    • 1970-01-01
    • 2020-06-11
    相关资源
    最近更新 更多