簡體   English   中英

在不同視圖之間傳遞數據

[英]Passing data between different views

我正在根據MVVM模型用C#編寫WPF應用程序。 我有一個MainWindow,其中包含幾個視圖:MenuView,ContentView1,ContentView2 、。 等等。

MenuView,ContentView1,ContentView2。 是XAML樹中的所有表親 (不打擾)。

MenuView由幾個按鈕組成。 每個按鈕都有一個唯一的ID。 內容視圖(所有視圖)應收到一個選定(單擊)按鈕的菜單ID。 即,當單擊MenuView中的按鈕時,我要將其ID傳遞給ContentsViews1,ContentsViews2等。

我不確定在視圖之間傳遞數據的最佳方法是什么。

我想將一個事件處理程序附加到駐留在MenuView中的所有菜單按鈕上。 該處理程序在MainWindow類(這是根視圖)中實現。 該處理程序將向所有子視圖引發一個RoutedEvent(帶有tunnel選項)。

有更好的方法嗎? 這是考慮性能問題的最佳方法嗎?

這種方法使我想起了我久違的Java經驗,您在其中傳遞了某種操作字符串! 給聽眾。

您將所有按鈕綁定到一個處理程序? 並根據ID,要在子視圖中執行操作?

如果是,則應將所有按鈕綁定到它自己的ICommand上,並在處理程序委托中執行操作。

您可以簡單地讓MenuViewModel公開其他(感興趣的)ViewModel可以訂閱的事件。 然后,每個視圖都可以綁定到相應的事件,並執行所需的操作。

這就留下了一個問題,即每個感興趣的ViewModel如何檢測MenuViewModel的存在,以便它可以訂閱其事件,但是如果沒有更多關於您的應用程序和所選MVVM框架的知識,就無法真正回答這一問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM