2016-04-28 4 views
1

アプリケーションは、MVVM Lightを使用してWPFで実装されています。MVVMライトを使用してWPFアプリケーションのすべてのページで同じイベントをトリガーする方法

現在、USB HID-KBを使用しているシリアル磁気カードリーダーを交換しています。 シリアルカードリーダーは、着信メッセージをトリガーするためのシリアルポートイベントがあったので簡単でしたが、これを処理する上で問題はありませんでした。しかし、USBカードリーダーでは、イベントは通常のキーボードのイベントです。ちなみに、カードリーダーにはベンダー固有のAPIはありません。これは一般的なUSBデバイスです。

今のところ、解決策は、ビュー内のキーイベントを取得し、ビューモデル上のビジネスロジックを処理することです。

しかし、ここで問題となるのは、エンドユーザーは、自分がどのページにいてもカードをスワイプできることです。そのスワイプイベントをキャプチャできるはずです。私が現在持っている唯一のオプションは、上記のようにすべてのビューでこのkeydowneventを配線する必要があるということです。

グローバルレベルでイベントを宣言することができるMVVMLightまたはWPFには、すべてのビューからトリガできる方法はありますか。

どのポインタも高く評価されます。

ありがとう、

答えて

1

解決策は非常に簡単です。 なぜ、ベースファイルのような共通ファイルでイベントを処理しないのですか?通常は、常にアクティブになるようなベースファイルでアプリケーションクローズイベントを処理します。問題は、アプリケーションが終了している間に確認する必要があることです。だから私は共通のベースファイルでイベントを処理し、条件をチェックします。

お返事をお寄せいただきありがとうございますが、ここでの問題は、ハンドラではない

+0

...それを試してみて、私は結果を教えてください、私はviewmodelbaseクラスでそれをすでにを追加して、私はイベントを追加する方法が必要です。私が現在認識している唯一の方法は、すべてのビューにそれを追加することです。 – brb

+0

なぜすべてのビューを処理したいのですか?現在のビューでデータを表示する必要がありますか。 メインのxaml.csファイルで処理するかどうかを言っていました。つまり、他のビューを含むメインビューファイルは、ビューに関係なく、1か所でイベントを取得できます。 – ViVi

+0

他のすべてのビューを含んでいるメインビューはありません。すべてのビューは単独で表示されます。 – brb

関連する問題