【问题标题】:How to bind different properties in listview如何在列表视图中绑定不同的属性
【发布时间】:2020-01-13 10:43:56
【问题描述】:

我只想为我的 ContentPage 使用 1 个列表视图。问题是我需要从一个对象列表中绑定两种不同类型的数据。

我尝试通过代码设置绑定,但仅适用于 1 个列表元素

第一个 ItemSource 是绑定元素的那个。

第二个包含不同的数据,但我想使用相同的 XAML 代码来显示它。

在 xaml 部分,假设我可以/想要重用:{Binding sRFC} 和 {Binding sNombre}

PickLista.ItemsSource = lst; // Bound list correctly - this is in code

PickLista.ItemsSource = ls; // List 2 with other object elements - this is in code


           <ListView x:Name="myLista" HasUnevenRows="true" Margin="5" SelectionMode="None">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Horizontal" Spacing="5"  HeightRequest="40" >
                            <Label Text="{Binding iId}" VerticalTextAlignment="Start" HorizontalTextAlignment="Start" TextColor="Black" FontSize="15"/>
                            <Label Text="{Binding sRFC}" VerticalTextAlignment="Start" HorizontalTextAlignment="Start" TextColor="Black" FontSize="15"/>
                            <Label Text="{Binding sNombre}" VerticalTextAlignment="Start" HorizontalTextAlignment="Start" TextColor="Black" FontSize="15"/>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

我希望能够在同一个列表视图中显示两个对象元素,或者如果我可以在另一个列表视图的相同位置使用另一个列表视图(通过 XAML)。

【问题讨论】:

  • 您想在运行时更改 ItemsSource 以在两组不同的数据之间切换?
  • 没错,我在运行时更改数据
  • 两个列表都是包含相关属性的类型?我希望这能奏效,但最好使用两个列表并根据需要切换它们的 IsVisible
  • 在堆栈布局中,该属性会将列表 1 的空间分配给列表 2 吗?或者你推荐其他布局?将两个列表视图放在同一位置
  • 你想在两个列表之间切换吗?或者您希望一个列表同时包含两种不同类型的数据?

标签: c# xaml xamarin xamarin.forms


【解决方案1】:

如果这些属性在两个类中的名称相同并且满足绑定所需的所有条件,它将起作用。所以要么你有不同的名字,要么某些类中的属性不是公开的,或者没有吸气剂......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 2012-07-11
    相关资源
    最近更新 更多