在构建Windows Phone 8.1 WinRT应用程序的View模型之一时,我打电话给DispatcherHelper.CheckBeginInvokeOnUI
我在运行时在App.xaml.cs OnLauched事件处理程序初始化DispatcherHelper
,但是在设计时这个初始化没有完成,所以当我调用DispatcherHelper.CheckBeginInvokeOnUI
时,我得到一个带有消息的异常“ DispatcherHelper未初始化“
除了有条件地调用DistpatcherHelper
,首先检查ViewModelBase.IsInDesignMode
之外,有没有办法在设计时避免此问题?
答案 0 :(得分:2)
正如问题所述,避免此问题的一种可能方法是首先检查我们是否处于设计模式,如this gist中所述:
using System;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Threading;
namespace MvvmLight.Helpers
{
public class DesignAwareDispatcherHelper
{
public static void CheckDesignModeInvokeOnUI(Action action)
{
if (action == null)
{
return;
}
if (ViewModelBase.IsInDesignModeStatic)
{
action();
}
else
{
DispatcherHelper.CheckBeginInvokeOnUI(action);
}
}
}
}