在 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
对象中包含 Size1
和 Atrib1
以使其可用于标签。另一种选择是将列表视图的绑定上下文更改为指向 FProp
然后您可以访问标签上的值,但您将无法访问 E1
值。因此,您需要根据提供的选项选择如何解决此问题。
您可以将 x:Name 添加到您的 ListView,假设 listView1
并使用类似这样的东西
{Binding Path=BindingContext.FProp.Size1, Source={x:Reference listView1}}
有人可以回答我有关列表视图的问题吗? 我有变量 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
对象中包含 Size1
和 Atrib1
以使其可用于标签。另一种选择是将列表视图的绑定上下文更改为指向 FProp
然后您可以访问标签上的值,但您将无法访问 E1
值。因此,您需要根据提供的选项选择如何解决此问题。
您可以将 x:Name 添加到您的 ListView,假设 listView1
并使用类似这样的东西
{Binding Path=BindingContext.FProp.Size1, Source={x:Reference listView1}}