Async await 在WinRT中将设计时数据从文件加载到混合代码中

Async await 在WinRT中将设计时数据从文件加载到混合代码中,async-await,blend,design-time-data,Async Await,Blend,Design Time Data,如果在Visual Studio中创建现成的WinRT电话应用程序,例如集线器应用程序(Windows 8.1 Universal),则生成的XAML将以XAML的形式加载设计时数据,如下所示: 从JSON文件解析的设计时数据在Blend中可见: 我想将JSON文件加载和解析从XAML移到C#,并使其在Blend中仍然可用。我该怎么做?我面临的挑战是,要在Blend中可用,我认为C#必须使用无参数构造函数。但是(在WinRT中)加载文件是异步的。因此,打开文件的方法必须标记为async并使

如果在Visual Studio中创建现成的WinRT电话应用程序,例如集线器应用程序(Windows 8.1 Universal),则生成的XAML将以XAML的形式加载设计时数据,如下所示:


从JSON文件解析的设计时数据在Blend中可见:

我想将JSON文件加载和解析从XAML移到C#,并使其在Blend中仍然可用。我该怎么做?我面临的挑战是,要在Blend中可用,我认为C#必须使用无参数构造函数。但是(在WinRT中)加载文件是异步的。因此,打开文件的方法必须标记为
async
并使用
wait
,或者使用
ContinueWith
continuation。但是,构造函数中不允许使用
async
await
,并且在页面加载到Blend中之后,继续中的任何内容都会出现,并且不会反映在Blend design视图中

如何将从文件解析的设计时数据加载到WinRT中的混合代码中


(注意,这是对的概括。)

您可以始终使用task.Wait()或task.Result(如果需要结果)阻止等待任务完成的线程