如何在 ListView 中绑定 Label 的 FontSize

How to bind FontSize of Label inside a ListView

我有一个 ListView,其 ItemSource 绑定到 ArticleList。我需要将其中 LabelFontSize 绑定到 MyFontSize,即 ArticleList 中的 NOT。它只是我视图模型中的另一个 属性,就像 ArticleList

XAML代码:

<ListView ItemsSource="{Binding ArticleList}"
          x:Name="ArticleListView" HasUnevenRows="True"
  SeparatorVisibility="None">

  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell>
        <ViewCell.View>
          <ContentView>
            <StackLayout Padding="10,0,20,10">

              <Image Source="{Binding _Image}"/>

              <Label Text="{Binding _Description}"
                     FontSize="{Binding MyFontSize}"/>

            </StackLayout>
          </ContentView>
        </ViewCell.View>
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>

</ListView>

您需要 'target' 为您的 ViewModel 保存正确数据上下文的元素。我猜你把它连接到你的页面了吗?无论如何,语法如下 - 元素名称是具有正确数据上下文的元素。

{Binding DataContext.MyFontSize, ElementName=LayoutRoot}

Dushyant Bangal 的精彩表现,似乎在 Xamarin 中您需要使用 Source 属性 才能使绑定工作:)

FontSize="{Binding BindingContext.MyFontSize, Source={Reference LayoutRoot}}"

尝试这样的事情:

FontSize="{Binding ElementName=ArticleListView, Path=DataContext.MyFontSize}"