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