3

パノラマ コントロールを使用して WP7 アプリを実行していますが、パノラマ タイトル プロパティへのバインドに問題があります。その値を ViewModel オブジェクトからバインドすることは可能ですか?

xaml ファイルでのバインド:

<controls:Panorama x:Name="prmPanorama" Title="{Binding Voyage.Title}">

ViewModel の Voyage プロパティは、変更されるたびに OnNotifyPropertyChanged イベントが発生する Model エンティティ (内部に Title プロパティを持つ) です。

private Voyage _voyage;
public Voyage Voyage
{
    get { return _voyage; }
    set
    {
        if (_voyage != value)
        {
            _voyage = value;
            OnNotifyPropertyChanged("Voyage");
        }
    }
}

同じプロパティを別のコントロールにバインドすると、たとえば. TextBlock、バインディングは問題なく機能します。

<TextBlock Text="{Binding Voyage.Title}" />

そのテキスト ブロックに表示されるテキストは本来あるべきものですが、同時にパノラマ タイトルが正しくバインドされていません - 折りたたまれています。

誰かがそのようなバインディングをしようとしましたか? なぜうまくいかないのかわかりません。

4

1 に答える 1

1
    <DataTemplate x:Key="TitleDataTemplate"> 
       <TextBlock Text="{Binding}" /> 
    </DataTemplate>
    ... 
    <controls:Panorama Title="{Binding Voyage.Title}" 
                       TitleTemplate="{StaticResource TitleDataTemplate}">

パノラマコントロールのコントロールテンプレートは、コンテンツプレゼンターを使用して、そのtitleプロパティがボタンのような値を持っているかどうかを表示します。タイトルテンプレートプロパティを設定するときは、コンテンツプレゼンターのコンテンツテンプレートを間接的に設定します。

そのため、パノラマコントロールでtitleプロパティを設定し、その値をタイトルテンプレートで使用してバインドすることができます。言い換えれば、タイトルにバインドするだけでは十分ではなく、テンプレートを与える必要があります。

詳細については、このリンクをチェックしてください

于 2012-02-13T21:44:36.317 に答える