{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 的绑定(bind)。

最佳答案

听起来你喜欢只需要做:

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

也就是说,如果您的 ContentPageBindingContext 设置为 SensorGroup 类。

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

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

关于c# - XAML ListView : header binding not working,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38086776/

10-11 13:41