如何在 ListView 中绑定 Label 的 FontSize

Posted

技术标签:

【中文标题】如何在 ListView 中绑定 Label 的 FontSize【英文标题】:How to bind FontSize of Label inside a ListView 【发布时间】:2015-11-17 13:22:17 【问题描述】:

我有一个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>

【问题讨论】:

【参考方案1】:

您需要“定位”为您的 ViewModel 保存正确数据上下文的元素。我猜你把它连接到你的页面上?无论如何,语法如下 - elementname 具有正确数据上下文的元素。

Binding DataContext.MyFontSize, ElementName=LayoutRoot

Dushyant Bangal 的成功之处,似乎在 Xamarin 中您需要使用 Source 属性才能使绑定工作:)

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

【讨论】:

ElementName 在 Xamarin.Forms 中不可用。抱歉,我没有指定 Xamarin.Forms。但您确实为我指明了正确的方向。以下对我有用:FontSize="Binding BindingContext.MyFontSize, Source=Reference LayoutRoot" 将你的答案与我的结合,将其选为答案 哈,Xamarin 的“差异”;) 我受够了这些细微的差别。但话又说回来,SourceReferenceElementName 更有意义:)【参考方案2】:

试试这样的:

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

【讨论】:

以上是关于如何在 ListView 中绑定 Label 的 FontSize的主要内容,如果未能解决你的问题,请参考以下文章

listview如何绑定数据库,让数据库的数据显示在listview中。

android 开发 listview绑定radiobutton控件 如何实现listview列表中只有一个radiobutton被选中?

如何绑定listView中项的子属性?

在WPF中插入了一个ListView表格,在SQL中建了一个表,如何实现绑定?

请教winform刷新问题

如何使用 TwoWay 模式将 Listview SelectedItem 绑定到文本框?