MVVM 轻型调度程序帮助程序设计时错误
本文关键字:错误 程序设计 帮助 轻型 调度程序 MVVM | 更新日期: 2023-09-27 17:56:37
在为 Windows Phone 8.1 WinRT 应用程序构建一个视图模型的过程中,我接到了一个电话DispatcherHelper.CheckBeginInvokeOnUI
我在运行时在 App.xaml .cs OnLauched 事件处理程序上初始化DispatcherHelper
,但在设计时,当我调用 DispatcherHelper.CheckBeginInvokeOnUI
时,此初始化不会完成,我收到一个异常,并显示消息"调度程序助手未初始化"
有条件地调用DistpatcherHelper
,先检查ViewModelBase.IsInDesignMode
之外,有什么方法可以在设计时避免此问题?
如问题中所述,避免此问题的一种可能方法是首先检查我们是否处于设计模式,如以下要点所示:
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);
}
}
}
}