0

我正在开发一个 Windows 通用应用程序,在我的一个观点中,我正在尝试使用 DesignTime Data。在我的 ViewModel 中,我创建了一个加载真实或虚拟数据的条件:

if(IsInDesignModeStatic || IsInDesignMode)
{
    var service = new DummyService()

    this.Data = await service.GetInformation(null, null);
}

我正在使用 mvvmLight。服务的 GetInformation 方法应从项目文件夹中的 json 文件加载数据。我尝试通过“StorageFile.GetFileFromApplicationUriAsync(dataUri);”加载文件 并通过普通的“File.ReadAllText”。在这两种情况下,Designer 都会引发“FileNotFoundException”。

我还尝试使用另一个 Visual Studio 实例来调试设计时视图模型,但我不知道应该使用哪条路径。我知道设计器在一个单独的进程中运行 - XDesProc - 但我不确定我的文件路径应该是什么样子,以便 XDesProc 可以找到它。

那么如何在代码中加载文件以获取设计时数据?

4

1 回答 1

0

对于设计时数据,我建议使用硬编码值。看看这篇文章(虽然它不是特定于 uwp,恕我直言,一切都适用于你的情况:)

https://msdn.microsoft.com/en-us/magazine/dn169081.aspx

特别是这部分:

但是某些操作(例如,某些复杂的多线程操作和使用相对于应用程序程序集的路径的操作)可能会导致内部异常

所以像文章一样使用静态数据,如果你想让它花哨,使用 SimpleIoc 在设计时和运行时数据之间切换..

于 2015-11-03T14:35:47.283 回答