2016-06-28 8 views
2

{Binding Title}が表示されません。XAML ListView:ヘッダーバインドが機能しない

これはBindingContextをに接続されたクラスです。

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

XAML:私は<Label Text="Some static text"/>と交換した場合

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

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

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

、テキストが表示されます。

this related questionは、this other questionにリンクしています。しかし、私はそれを動作させることができませんでした。私が試した:

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

... 

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

それは私にTitleとの結合が見つからないというエラーを与えます。あなたのContentPageBindingContextSensorGroupクラスに設定されている場合

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

つまり:

+0

'SensorGroup'クラスが見つかるようにDataContextを正しく設定しましたか? – ChrisF

+0

プロパティ 'Sensor 'にバインドされた' ListView'の項目が正しく表示されているため、コンストラクタで記述された 'BindingContext = new SensorGroup()'(過度に単純化しています)が正しく動作しています。 –

答えて

4

はあなただけで行う必要があるように聞こえます。

上記はListView.HeaderContentPage.BindingContextが設定されているものにバインドされていることを示しています。つまり、ListView.HeaderTemplateコントロールは、これまでのContentPage.BindingContextに設定されているものも使用します。

それが意味をなさないかどうか教えてください。

+0

それでした。どうもありがとうございます。私はXamarinのチュートリアルに従っていました。彼らは私に "Header ="を設定するように指示していましたが、ヘッダーを( "静的テキスト"で)動作させるために ""そんなに馬鹿げて、私はこのルールを盲目的に守っていた。 –

+0

@XavierPeña助けてくれることを嬉しく思っていました。正当な理由なしに髪を失うことのない点;) – hvaughan3

+0

ありがとう!私の問題を解決:)恥Xamarinは本当にそれを文書化しないでください! – Rexxo

関連する問題