SystemEvents.SessionSwitch + = 新SessionSwitchEventHandler(SystemEvents_SessionSwitch);的Win32事件+ WPF + MVVM
我
代码即时通讯使用的用于启动和停止生成WPF应用程序,时间锁定工作站之间的时间和解锁 但我有一个很难不把在主窗口隐藏代码执行它计时器
SystemEvents.SessionSwitch +=
new SessionSwitchEventHandler(SystemEvents_SessionSwitch);
private static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
if (e.Reason == SessionSwitchReason.SessionLock)
{
//Start Timer
}
else if (e.Reason == SessionSwitchReason.SessionUnlock)
{
//Stop Timer -> show window
}
}
的问题是,这一事件驻留在的Microsoft.Win32 - 我似乎不能在XAML中引用(如果我可以,我会迷上它以一个ICommand代替)
所以你所有的MVVM专家,我该怎么做? 我是否将它保留在主窗口代码隐藏中? 或可我实际引用的Win32在XAML
和侧面的问题... 定时器逻辑 - 我记住这单独的类和值存储在模型或? 不用说 - 我是相当新的MVVM
就我个人而言,我只是在激活/关闭视图模型(取自Caliburn.Micro的术语)中挂钩和解除事件。那么就应该是没有问题的去做,在视图模型... –
MVVM!=无代码隐藏。 UI逻辑进入代码隐藏。应用程序逻辑进入虚拟机。 – Will