如何在ListView

时间:2015-08-24 07:44:56

标签: xaml listview binding windows-phone-8.1 xamarin.forms

我有一个ListViewItemSource绑定到ArticleList。我需要将FontSize内的Label绑定到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>

2 个答案:

答案 0 :(得分:3)

你需要&#39;目标&#39;保存ViewModel的正确datacontext的元素。我猜你会把它连接到你的页面上吗?无论如何,语法如下 - elementname元素具有正确的datacontext。

{Binding DataContext.MyFontSize, ElementName=LayoutRoot}

Dushyant Bangal的巨大收获,似乎在Xamarin你需要使用Source属性来进行绑定:)

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

答案 1 :(得分:0)

尝试这样的事情:

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