【问题标题】:How to bind multiple rows and columns to the list view?如何将多行和多列绑定到列表视图?
【发布时间】:2023-03-14 21:15:01
【问题描述】:

我的列表视图包含网格,我需要在网格内动态绑定多个行和列。

(Grid.Row 和 Grid.column 值从列表视图中获取)

这是我的 xaml 代码:

<ListView x:Name="xxxx" HasUnevenRows="True" SeparatorVisibility="None" VerticalOptions="FillAndExpand">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid BackgroundColor="White">
                   <Image Source = {Binding image} Grid.Row = {Binding rowNo} Grid.Column = {Binding columnNo}/>
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

这是我的cs:

new item { image = "x.png", rowNo = "1", columnNo = "0"}

通过使用这个我得到一个输出 (例如:Grid.row =2 Grid.column =2 我的输出是:

        1         
             1     
        1
             1

我将它作为 4 行而不是 2 行)

如何解决这个问题???

【问题讨论】:

  • ListView 的每一行都将包含一个 Grid - 我认为这不是你想要的吗?如果您只想要一个网格,请查看使用可绑定布局
  • stackoverflow.com/questions/55758023/…。看看它是否是您正在寻找的东西。或者用一些实时例子来解释它,这样人们就可以看到你想要什么。
  • 我想在单个网格中绑定多行多列。

标签: listview xamarin xamarin.forms


【解决方案1】:

我认为您可以使用CollectionView 控件中的VerticalGrid 选项来完成此操作。 请注意,CollectionView 仍处于预览状态,但将在 XF 4.0 中成为 RTM(当前估计值)。 不过,它已经可以使用了。

这里提到了细节https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/collectionview/layout#vertical-grid

当你创建你的 CollectionView 时,你可以像这样指定它应该使用多少列:

CollectionView collectionView = new CollectionView
{
    ...
    ItemsLayout = new GridItemsLayout(2, ItemsLayoutOrientation.Vertical)
};

这将呈现 2 列布局。 看看这是否符合您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2013-11-25
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    相关资源
    最近更新 更多