我正在使用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}" />
该文本块中显示的文本应该是正确的,但同时全景标题没有绑定 - 它已折叠。
有没有人试图做那种绑定?我不知道为什么它不起作用。
答案 0 :(得分:1)
<DataTemplate x:Key="TitleDataTemplate">
<TextBlock Text="{Binding}" />
</DataTemplate>
...
<controls:Panorama Title="{Binding Voyage.Title}"
TitleTemplate="{StaticResource TitleDataTemplate}">
全景控件的控件模板使用内容展示器来显示其title属性类似于按钮的任何值。设置标题模板属性时,间接设置内容呈现器的内容模板。
这就是为什么你必须在全景控件上设置title属性,然后可以在标题模板中使用该值进行绑定。换句话说,它不足以仅仅绑定到标题,你必须给它一个模板。