【发布时间】:2011-06-03 04:34:42
【问题描述】:
这个问题几乎说明了一切。
我有一个窗口,并尝试使用 ViewModel 的完整命名空间设置 DataContext,但我似乎做错了什么。
<Window x:Class="BuildAssistantUI.BuildAssistantWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="BuildAssistantUI.ViewModels.MainViewModel">
【问题讨论】:
-
在 Mike Nakis 之后,我试图手动创建 ViewModel 并订阅其中的事件,却发现框架正在创建另一个 ViewModel。因此,我订阅的 viewModel 不是附加到视图的那个。
-
这是否意味着除了自己实例化视图模型之外,您还还以其他方式指定了视图模型的类型?需要构造函数参数的视图模型的第二个优点是框架要么无法实例化它们,要么必须为这些参数传递默认值,在这种情况下,您可以轻松检测框架的实例化。
-
XAML 设计器可能还需要能够实例化视图模型,但是这个设计器对我从来没有任何用处,(它只会导致问题,)所以我不使用它,所以我个人不关心那个用例。
-
DataContext="{Binding Source={x:Type BuildAssistantUI.ViewModels.MainViewModel}}"我们可以像这样使用 {x:Type} 吗?.. 但是,它不起作用。