如何将多行和多列绑定到列表视图?

Posted

技术标签:

【中文标题】如何将多行和多列绑定到列表视图?【英文标题】:How to bind multiple rows and columns to the list view? 【发布时间】:2019-04-24 15:58:37 【问题描述】:

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

(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 - 我认为这不是你想要的吗?如果您只想要一个网格,请查看使用可绑定布局 ***.com/questions/55758023/…。看看它是否是您正在寻找的东西。或者用一些实时例子来解释它,这样人们就可以看到你想要什么。 我想在单个网格中绑定多行多列。 【参考方案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 列布局。 看看这是否符合您的需求。

【讨论】:

以上是关于如何将多行和多列绑定到列表视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建具有多行多列的表格视图?

将标题添加到android中的多列列表视图

如何将数据绑定到 Jquery Mobile 列表视图

如何将控件绑定到 WPF 列表视图列

如何将对象及其属性绑定到树视图

如何将两个单独表中的两列拆分为视图中的多行?