MVVM Light Dispatcher 助手设计时错误

MVVM Light Dispatcher helper design time error

在构建 Windows Phone 8.1 WinRT 应用程序的其中一个视图模型期间,我调用了 DispatcherHelper.CheckBeginInvokeOnUI

我在运行时在 App.xaml.cs OnLauched 事件处理程序中初始化 DispatcherHelper,但在设计期间未完成此初始化,因此当我调用 DispatcherHelper.CheckBeginInvokeOnUI 时,我收到异常消息"The DispatcherHelper is not initialized"

除了有条件地调用 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);
            }
        }
    }
}