在为Windows Phone 8.1 WinRT应用程序构建View模型之一的过程中,我打电话给DispatcherHelper.CheckBeginInvokeOnUI
我在运行时通过App.xaml.cs OnLauched事件处理程序初始化了DispatcherHelper
,但是在设计时未进行此初始化,因此当我调用DispatcherHelper.CheckBeginInvokeOnUI
时,出现异常,消息为“ DispatcherHelper未初始化”。
除了有条件地调用DistpatcherHelper
首先检查ViewModelBase.IsInDesignMode
之外,还有什么方法可以在设计期间避免此问题?
最佳答案
正如问题中提到的,避免此问题的一种可能方法是检查我们是否首先在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);
}
}
}
}
关于c# - MVVM Light Dispatcher帮助程序设计时间错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30855695/