2015-05-07 58 views
2

我對使用多個視圖的WPF GUI進行編程。我正在使用MVVM Light Toolkit來實現MVVM模式。在導航服務中使用EventHandler

對於瀏覽我使用this機制通過將我的主框架更改爲導航窗口和我的所有視圖頁面。

我在ViewModel構造函數中注入了導航服務,現在我可以在視圖之間導航。

但是,我想在導航時在視圖之間傳輸數據。導航窗口中有一個method,這可以通過事件處理程序實現。我已經在我的界面中實現了一個方法,但是我在調​​用導航視圖模型的事件處理程序時遇到了問題。

任何人都可以告訴我如何調用我的ViewModel中的事件處理程序?

謝謝!

編輯:我試着打電話:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
    { 

    } 

,但我得到一個錯誤說:

的OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs)「:發現覆蓋

沒有 合適的方法

我已經清理了我的解決方案並嘗試了重建...

有什麼建議嗎?

EDIT2:

所以我發現,在WPF .NET 4.5中的OnNavigatedTo事件已經一去不復返了。我無法找到爲什麼以及我怎麼能打電話給類似的東西。

+0

你的意思是OnNavigatedTo事件? – Fred

+0

是的,但我有ViewModel處理這個事件的麻煩。不知何故,我必須告訴視圖模型,這個事件存在以及它來自哪裏。我遇到了麻煩。 – Julian

+0

當我使用保護覆蓋無效OnNavigatedTo在我的頁面類ich得到一個錯誤,沒有方法與該名稱來覆蓋.... – Julian

回答

1

我還沒有得到回答我的問題,所以我會嘗試一個答案......

不要過度覺得這...如果需要傳輸信息製作靜態鏈接到虛擬機(s)有問題,或者在應用程序類上留下靜態的放置。無論哪種方式顯示視圖,訂閱初始化/加載事件之一,並在預定位置獲取信息。

+0

感謝您的回答! 我沒有問題,在視圖的代碼behing中發送事件並將信息發送到ViewModel,但我的視圖(它是從類頁面派生的)應該有[this](https:// msdn。 microsoft.com/library/system.windows.controls.page.onnavigatedto%28VS.95%29.aspx)事件處理程序,它不。請參閱原始問題中的錯誤。 – Julian

+0

更新:請參閱上文 – Julian