如何在 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
。我需要将其中的Label
的FontSize
绑定到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 的“差异”;)
我受够了这些细微的差别。但话又说回来,Source
和 Reference
比 ElementName
更有意义:)【参考方案2】:
试试这样的:
FontSize="Binding ElementName=ArticleListView, Path=DataContext.MyFontSize"
【讨论】:
以上是关于如何在 ListView 中绑定 Label 的 FontSize的主要内容,如果未能解决你的问题,请参考以下文章
listview如何绑定数据库,让数据库的数据显示在listview中。
android 开发 listview绑定radiobutton控件 如何实现listview列表中只有一个radiobutton被选中?