XAML ListView:标头绑定无法正常工作

时间:2016-06-28 21:41:36

标签: c# xaml xamarin

我无法显示{Binding Title}中的HeaderTemplate

这是连接到BindingContext的类:

class SensorGroup
{
    public string Title { get; set; }
    public IList<Sensor> Sensors { get; set; }
}

XAML:

<ListView  Header=""
           ItemsSource="{Binding Sensors}">

  <ListView.HeaderTemplate>
    <DataTemplate>
      <Grid>
        <Label Text="{Binding Title}"/>
      </Grid>
    </DataTemplate>
  </ListView.HeaderTemplate>

  <ListView.ItemTemplate>
  ...
</ListView>

如果我将其替换为<Label Text="Some static text"/>,则会显示文字。

我找到this related question,其链接到this other question。但我无法使其发挥作用。我试过了:

<ContentPage.Resources>
    <Label x:Key="MyTitle"
            Binding="{Title}"/>
</ContentPage.Resources>

...

<Grid>
    <StaticResource ResourceKey="MyTitle"/>
</Grid>

它给出了一个错误,指出无法找到与Title的绑定。

1 个答案:

答案 0 :(得分:4)

听起来你只需要这样做:

<ListView  Header="{Binding .}"
           ItemsSource="{Binding Sensors}">

如果您的ContentPage的{​​{1}}设置为BindingContext类,那就是这样。

以上是告诉SensorGroup绑定到ListView.Header设置的内容。这意味着ContentPage.BindingContext控件也将使用ListView.HeaderTemplate设置的内容。

如果这没有任何意义,请告诉我。