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

Design-time data not showing when creating a UWP MVVM Light project

在创建 MVVM Light UWP 应用程序时,我无法通过我的视图模型获取程序设计时数据。我相信这可能是由于 Visual Studio 2015 在设计器中添加了绑定的 属性 名称。我已经确认这是在项目模板(MVVM Light 2015 for VS2015 - 版本 5.2.0.0)中创建一个空白的 MvvmLight (Win10Univ) 应用程序,它清楚地显示 "WelcomeTitle",属性 的名称而不是"Welcome to MVVM Light [design]"即设置在DesignDataServiceclass.

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

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

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

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

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

现在,根据 MVVM Light 项目模板应用程序,通常以上就是您需要做的所有事情,但我尝试遵循但没有成功:

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

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

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

注意:此问题可能不仅与 MVVM Light 有关,而且可能是 UWP 平台问题。

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

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