能否在UserControl上使用MVVMLight的ViewModelLocator?我已经按照MainWindow上的方式将其添加到我的UserControl中,但是在VS2010中出现了一个错误/弹出窗口,指出“找不到名为'Locator'的资源。资源名称区分大小写。”
有人尝试过这个吗?
到目前为止,我所拥有的代码基本上是标准的MVVMLight WPF起始应用程序...
UserControl
<UserControl x:Class="NavTest3.PersonControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Height="116" MinWidth="250" Width="300"
DataContext="{Binding Person, Source={StaticResource Locator}}"
>
<!---->
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins/MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
App.xaml 包含...
<Application.Resources>
<!--Global View Model Locator-->
<vm:ViewModelLocator x:Key="Locator"
d:IsDataSource="True" />
</Application.Resources>
问题出在将 "DataContext="{Binding Person, Source={StaticResource Locator}}" 设置到用户控件上。"
如上所述,这样做意味着每个此用户控件实例都将共享相同的 ViewModel,但我想先理解这个问题再进行下一步操作。