XAML ListView:标头绑定不起作用

Xav*_*eña 3 c# xaml xamarin

我不能让{Binding Title}inHeaderTemplate出现。

这是连接到 BindingContext 的类:

class SensorGroup
{
    public string Title { get; set; }
    public IList<Sensor> Sensors { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

XAML:

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

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

  <ListView.ItemTemplate>
  ...
</ListView>
Run Code Online (Sandbox Code Playgroud)

如果我用 替换它<Label Text="Some static text"/>,文本就会出现。

我找到了这个相关的问题,它链接到另一个问题。但我无法让它发挥作用。我试过:

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

...

<Grid>
    <StaticResource ResourceKey="MyTitle"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误,说Title无法找到绑定。

hva*_*an3 6

听起来你喜欢只需要做:

<ListView  Header="{Binding .}"
           ItemsSource="{Binding Sensors}">
Run Code Online (Sandbox Code Playgroud)

也就是说,如果您的ContentPage'sBindingContext设置为SensorGroup类。

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

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