创建UWP MVVM Light项目时未显示的设计时数据

时间:2016-05-26 12:04:02

标签: xaml mvvm-light uwp uwp-xaml

创建MVVM Light UWP应用程序时,我无法通过View Model获得编程设计时数据。我相信这可能是由于Visual Studio 2015在设计器中添加了绑定的属性名称。我已经确认这将在项目模板(MVVM Light 2015 for VS2015 - Version 5.2.0.0)中创建一个空白的MvvmLight(Win10Univ)应用程序,它清楚地显示“WelcomeTitle”,该属性的名称而不是“欢迎使用MVVM Light [设计]“在DesignDataService类中设置。

MVVM Light Main Page capture in designer showing incorrect design time data

在我自己的项目中看到这个问题时,我在我的View模型中使用了这样的东西:

if (this.IsInDesignMode)
{
    // Load design time data when in design mode
    this.Duration = "2 HRS 13 MINS";
}

然后我绑定到我的View中的属性,数据上下文设置如下:

<Page.DataContext>
        <Binding Path="FooBarPageViewModel" Source="{StaticResource Locator}" />
</Page.DataContext>

现在,通常上面是根据MVVM Light项目模板应用程序所需要做的所有事情,但我试图关注但没有成功:

d:DataContext="{Binding FooBarPageViewModel, Source={StaticResource Locator}}"

我也试过使用x:Bind,但仍然看到同样的问题。

那么有人知道如何解决这个问题或遇到过类似问题吗?

注意:此问题可能与MVVM Light无关,而可能是UWP平台问题。

1 个答案:

答案 0 :(得分:2)

好的,因此在x86架构中构建模板MVVM Light UWP应用程序允许您在Visual Studio设计器中查看设计时数据。但是,有几点:

  • 在x86模式下,您必须在设计器中启用项目代码按钮才能查看设计时间数据。
  • 如果您使用x86在XAML页面中组合了x:bind和运行时绑定,则设计器会崩溃。您可以在设计器中禁用项目代码来修复崩溃,但设计时间数据将无法再次运行。
  • 在x64模式下,似乎无法启用项目代码按钮,从而导致出现此原始问题。