C#中datacontext与普通对象创建的区别

时间:2013-07-01 06:22:38

标签: c# .net silverlight c#-4.0 mvvm

我看过一个视频,在不同的窗口,主持人都遵循不同的风格。

例如:

在一个窗口中,他使用如下所示:

EmployeeViewModel evm = (EmployeeViewModel)this.DataContext;
evm.Display();

另一方面,他使用的是:

EmployeeViewModel evm = new EmployeeViewModel();
evm.Display();

技术上的差异和使用的最佳方式是什么?请帮我理解其中的差异。

1 个答案:

答案 0 :(得分:2)

第一个代码片段检索当前显示的ViewModel。 (它应该进行空检查)

第二个代码片段创建一个ViewModel的新实例。

因为不清楚Display()的作用,很难解释两个片段的效果之间的区别,但可能是第二个片段是忽略View的ViewModel的(单元)测试。

据我所知,没有最好的方法,因为这两个片段都有不同的用途。