全景标题绑定

时间:2012-02-13 21:19:21

标签: windows-phone-7 binding mvvm panorama-control

我正在使用Panorama控件执行WP7应用程序,并且在绑定到Panorama Title属性时遇到问题。是否可以从ViewModel对象中绑定该值?

在xaml文件中绑定:

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

ViewModel的Voyage属性是一个Model实体(内置Title属性),每次更改时都会触发OnNotifyPropertyChanged事件:

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

当我将相同的属性绑定到另一个控件时,例如。 TextBlock,绑定工作得很好:

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

该文本块中显示的文本应该是正确的,但同时全景标题没有绑定 - 它已折叠。

有没有人试图做那种绑定?我不知道为什么它不起作用。

1 个答案:

答案 0 :(得分:1)

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

全景控件的控件模板使用内容展示器来显示其title属性类似于按钮的任何值。设置标题模板属性时,间接设置内容呈现器的内容模板。

这就是为什么你必须在全景控件上设置title属性,然后可以在标题模板中使用该值进行绑定。换句话说,它不足以仅仅绑定到标题,你必须给它一个模板。

Check out this link for more info