2010-02-17 124 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(); 

,那么你可以在视图访问该元素的信息