如果您在 Visual Studio 中创建开箱即用的 WinRT 手机应用程序,例如 Hub 应用程序(Windows 8.1 Universal),则生成的 XAML 会在 XAML 中加载设计时数据,如下所示:
<HubSection
IsHeaderInteractive="True"
DataContext="{Binding Section3Items}"
d:DataContext="{Binding Groups[3], Source={d:DesignData Source=../HubApp1.Shared/DataModel/SampleData.json, Type=data:SampleDataSource}}"
x:Uid="Section3Header"
Header="Section 3"
Padding="40,40,40,32">
从 JSON 文件解析的设计时数据在 Blend 中可见:
我想将 JSON 文件加载和解析从 XAML 移到 C# 中,并让它在 Blend 中仍然可用。我怎么做?我面临的挑战是,要在 Blend 中可用,我认为 C# 必须使用无参数构造函数。但是加载文件(在 WinRT 中)是异步的。因此,打开文件的方法必须要么标记async
并使用await
,要么使用ContinueWith
延续。但是async
,因此await
在构造函数中是不允许的,并且在页面加载到 Blend 之后似乎会发生任何延续事件,并且不会反映在 Blend 设计视图中。
如何将从文件中解析的设计时数据加载到 WinRT 中的代码中?
(注意这是对另一个问题的概括。)