2012-04-26 39 views
3

誰でもお手伝いできますか? 私はWPFでWndProcメソッドを使用したいが、私はこのようMainWindow.xaml.csでそれを使用したいドント:MVVM-Modelを使用しているときにWPFでWndProcを使用するには?

public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnSourceInitialized(EventArgs e) 
    { 
     base.OnSourceInitialized(e); 
     HwndSource source = PresentationSource.FromVisual(this) as HwndSource; 
     source.AddHook(WndProc); 
     _windowHandle = source.Handle.ToInt32(); 
    } 

は、私は別のクラスでそれを使用したい理由は、uEyeカメラメッセージを介して通信し、それらを「キャッチ」する必要があります。メインビューのViewModelモデルを使用しているため、MainWindow.xaml.csにコードを入力する必要はありません。

答えて

3

MVVMでは、Viewレイヤーにコードを記述できないとは言いません。 ViewModelのModelにアクセスするためのコードを記述し、ViewとViewModelの間の接続を可能な限り簡単に(通常はバインディングを使用して)保つようにしなければならないと言います。

この場合、ビューレイヤーのコードに書き込んで、ビューレイヤーの一部であるWndProcにアクセスします。

私の意見では、あなたのコードは完全にMVVMに準拠しています。

+0

ありがとうございました。私はそれをどのようにするのですか?D – Basde

+1

Roberto氏によると、WndProcがWindowsメッセージをキャプチャした後に実行するビジネスロジックをViewModelクラス – Khaliloz

+0

私はすでにそれをしました、私はちょうどそこにコードを持たない – Basde

関連する問題