在 XAML Xamarin 的 ListView 中绑定

Binding in ListView in XAML Xamarin

有人可以回答我有关列表视图的问题吗? 我有变量 MyDatas,它是列表视图的集合(并且有效):

<ListView 
            x:Name="lstView"
            HasUnevenRows="True"
            ItemsSource="{Binding MyDatas}"> ...

接下来我有(我的部分代码但足以解释问题):

<Label Grid.Row="0"
       Grid.Column="1" 
       Text="{Binding E1}" 
       FontSize="{Binding FProp.Size1}" 
       FontAttributes="{Binding FProp.Atrib1}"/>

E1 是 MyDatas 的一个字段,此绑定工作正常。我在另一个变量 FProp(FProp.Size1 和 FProp.Atrib1)中有 属性 个字体,这是个问题!我怎样才能在这个列表视图中使用这个另一个变量? 如果 FProp 在 listview 之外使用一切正常,如果我在 listview 中使用它则不起作用。

感谢您的帮助

我认为您没有正确绑定字体大小。 您在对象 FProp 中引用了一个名为 Size1 的 属性,它不在您当前的绑定上下文中。主要问题是每个对象只能有一个绑定上下文。因此,您应该在 MyDatas 对象中包含 Size1Atrib1 以使其可用于标签。另一种选择是将列表视图的绑定上下文更改为指向 FProp 然后您可以访问标签上的值,但您将无法访问 E1 值。因此,您需要根据提供的选项选择如何解决此问题。

您可以将 x:Name 添加到您的 ListView,假设 listView1 并使用类似这样的东西

{Binding Path=BindingContext.FProp.Size1, Source={x:Reference listView1}}