windows-phone-7 - 全景标题绑定(bind)

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

我正在使用全景控件做 WP7 应用程序,并且在绑定(bind)到全景标题属性时遇到问题。是否可以从 ViewModel 对象中绑定(bind)该值?

xaml 文件中的绑定(bind):

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

ViewModel 的 Voyage 属性是一个模型实体(内部带有 Title 属性),每次更改时都会触发 OnNotifyPropertyChanged 事件:
private Voyage _voyage;
public Voyage Voyage
{
    get { return _voyage; }
    set
    {
        if (_voyage != value)
        {
            _voyage = value;
            OnNotifyPropertyChanged("Voyage");
        }
    }
}

当我将相同的属性绑定(bind)到另一个控件时,例如。 TextBlock,绑定(bind)工作得很好:
<TextBlock Text="{Binding Voyage.Title}" />

该文本 block 中显示的文本应如此,但同时全景标题未正确绑定(bind) - 它已折叠。

有没有人尝试过这种绑定(bind)?我不知道为什么它不起作用。

最佳答案

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

全景控件的控件模板使用内容演示器来显示其标题属性具有的任何值,类似于按钮。设置标题模板属性时,您间接设置了内容演示者的内容模板。

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

Check out this link for more info

关于windows-phone-7 - 全景标题绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9268179/

相关文章:

c# - 遵循 MVVM 在 WPF 应用程序中集成上下文相关帮助

c# - 为什么当 WPF TextBox 无效时 ViewModel 没有得到更新?

c# - 数据模板绑定(bind)垃圾邮件输出窗口出现错误 : Cannot find governing FrameworkElemen

Silverlight - 将 Listbox ActualWidth 绑定(bind)到 ListboxItem 宽度

.net - window 电话 7 : Existing Libraries Not Supported?

Silverlight 文本框条件绑定(bind)样式

WPF 绑定(bind) : How to databind to Grid?

c# - 响应式扩展即时搜索 WPF/MVVM

windows-phone-7 - WP7 - AppHub 提交失败,错误代码为 1044

c# - GPS计算Windows Phone 7上两点之间的距离