【发布时间】:2015-04-09 20:19:48
【问题描述】:
这可能是一个愚蠢的问题,但我无法在我自己的 Windows Phone 应用程序中重新创建“Hub App”模板使用的 Hub 页面数据绑定方法。
我的 XAML 绑定到一个视图模型类,该类被定义为我的 Page 对象的公共属性,只要我包含以下行,它就可以正常工作:
this.DataContext = *viewmodel object here*
在 OnNavigatedTo() 方法中。
如果我注释掉这一行,则在运行时不会加载任何数据。这听起来很明显但是(这是我的问题),“Hub App”模板从不将对象分配给任何 .xaml.cs 文件中的“this.DataContext”。绑定只在 XAML 中定义。我错过了什么?
更新:添加了 xaml 和 xaml.cs
XAML
<Page
DataContext="{Binding Subject, RelativeSource={RelativeSource Mode=Self}}"
d:DataContext="{d:DesignData Source=SampleData/SubjectSampleData.xaml}">
XAML.CS
public sealed partial class BlankPage1 : Page
{
public BlankPage1()
{
this.InitializeComponent();
}
public Subject Subject { get; set; }
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (e.Parameter != null)
{
var subjectName = e.Parameter as string;
var subject = App.MainViewModel.Subjects.Single(item => item.Name == subjectName);
if (subject != null)
{
this.Subject = subject;
}
//this.DataContext = this.Subject;
}
}
}
【问题讨论】: