2016-04-28 58 views
1

我們的應用程序使用MVVM Light在WPF中實現。如何使用MVVM Light在WPF應用程序的每個頁面上觸發相同的事件

我們正在更換我們的舊磁卡讀卡器,該讀卡器目前是帶有USB HID-KB的串行卡。 串口卡讀卡器很容易,因爲我們有串口事件來觸發收到的消息,我們在處理這些消息時沒有問題。但使用USB讀卡器,事件是普通鍵盤的事件。順便說一句,讀卡器沒有供應商特定的API,這是一個通用的USB設備。

截至目前,解決方案是在視圖中捕獲keydownevent並處理視圖模型上的業務邏輯。

但這裏的問題是,最終用戶可以刷卡,而不管他/她在哪個頁面上。我們應該能夠捕捉到滑動事件。我目前唯一的選擇是我需要在上面提到的每個視圖上連接這個keydownevent。

MVVMLight或WPF中是否有任何可以在全局級別聲明事件的方法,可以從每個視圖觸發事件。

任何指針將不勝感激。

謝謝,

回答

1

解決方案非常簡單。 你爲什麼不在普通文件中處理事件,比如基本文件。通常我們會在這些基本文件中處理應用程序關閉事件,這些事件始終處於活動狀態事情是我有一些條件可以在應用程序關閉時進行檢查。所以我在公共基礎文件中處理事件,並在那裏進行條件檢查。

請嘗試,讓我知道結果..

+0

感謝您的答覆,但這裏的問題是不與處理程序,我已經添加了它在viewmodelbase類,我需要一種方法來添加事件。我目前知道的唯一方法是在每個視圖中添加它。 – brb

+0

爲什麼你想在每個視圖中處理?您是否必須在當前視圖中顯示數據? 我在說如果你在主xaml.cs文件中處理它。即包含其他視圖的主視圖文件,無論視圖如何,都可以在一個位置獲取事件。 – ViVi

+0

我們沒有包含所有其他視圖的主視圖,每個視圖都是獨立的。 – brb

相關問題