2010-02-17 70 views
4

我處於學習wpf/mvvm的階段,按照我在vm中的瞭解,我們聲明命令並將它們綁定到視圖元素的事件,而不是在代碼隱藏文件中執行此操作。我不明白,我們將如何訪問視圖元素和事件性的事件。wpf mvvm ..在viewmodel中訪問視圖元素

回答

10

您的ViewModels將不直接訪問視圖中的元素。這個概念是視圖將綁定到ViewModel,而不是相反。所以;您的ViewModel將通過屬性中設置的值告訴View顯示什麼。如果你的視圖需要顯示一些東西,它會有一個數據綁定到這個屬性。

這些命令將由ViewModel保存,您可以直接綁定它們。如果您需要命令更新View的值,可以通過將命令的引用保存到必要的ViewModel來完成。 (持有命令的ViewModel可以例如在創建時將自身注入到命令中)。然後該命令可以告訴ViewModel更新一些內容,這將在通過數據綁定查看中得到反映。

對於MVVM模式的一般介紹,你可以看看幾天前問過的這個問題:Learning MVVM for WPF

+0

無論如何感謝..但如果你對回覆的對話框,並給一些片段來清除...感謝的人 – 2010-02-17 08:44:43

+0

對於基本數據將不勝感激綁定你應該在這裏找到你的答案:http://stackoverflow.com/questions/1153147/one-sentence-explanation-to-mvvm-in-wpf/1153246#1153246。我現在很忙,但會看看我是否能在今天晚些時候找到時間在命令上添加一些片段等。 – stiank81 2010-02-17 09:07:01

+0

您可以讓你的命令告訴ViewModel產生對話框。對話框的響應可以在ViewModel中設置爲值,並且View將通過數據綁定獲取。 – stiank81 2010-02-17 09:08:48

-1
var v=(viewclassname)this.getview(); 

,那麼你可以在視圖訪問該元素的信息