Silverlight 4.0 SL4,MVVM:视图何时可以使用VM?

Silverlight 4.0 SL4,MVVM:视图何时可以使用VM?,silverlight-4.0,mvvm,Silverlight 4.0,Mvvm,我有一个视图,并将其DataContext设置为相应的ViewModel。在查看代码隐藏中加载的事件处理程序中,我想在VM上设置一些属性。但是,此时视图的DataContext为空。 在xaml中: Loaded="UserControl_Loaded" <UserControl.Resources> <viewModels:PageViewModel x:Key="vm" /> </UserControl.Resources> 当视图触发加载的事件


我有一个视图,并将其DataContext设置为相应的ViewModel。在查看代码隐藏中加载的事件处理程序中,我想在VM上设置一些属性。但是,此时视图的DataContext为空。
在xaml中:

Loaded="UserControl_Loaded"
<UserControl.Resources>
    <viewModels:PageViewModel x:Key="vm" />
</UserControl.Resources>
当视图触发加载的事件时,我是否做错了什么,或者VM是否还不可用

更新:真正的问题似乎是虚拟机没有连接到视图。在加载的UserControl_中,pvm为空。
目前,我正在布局的根元素上设置DataContext;是否需要在UserControl上设置它?如果是,怎么做

感谢您提供的任何见解…

替换

<UserControl.Resources>
    <viewModels:PageViewModel x:Key="vm" />
</UserControl.Resources>

作者:



谢谢!我试图设置DC和资源,但这不起作用,显然…没有尝试,但您可能可以使用。我注意到,使用我原来的xaml(通过布局根目录上的StaticResource设置DC),在设计时在Binding语句中正确解析了属性。当我更改为您的xaml时,属性无法识别。我尝试将:d:DataContext=“{d:DesignInstance Type=viewModels:PageViewModel}”添加到布局根目录中,但绑定语句中的属性仍然没有记录。在设计时。谢谢你迄今为止的回答。。。。
<UserControl.Resources>
    <viewModels:PageViewModel x:Key="vm" />
</UserControl.Resources>
<UserControl.DataContext>
    <viewModels:PageViewModel />
</UserControl.DataContext>