我正在尝试 Unity,但在 XAML 中声明我的视图模型时遇到问题。你能帮我吗?XAML:
<UserControl.DataContext>
<search:SearchBoxViewModel />
</UserControl.DataContext>
构造函数:
[ImportingConstructor]
public SearchBoxViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
{
this.regionManager = regionManager;
this.eventAggregator = eventAggregator;
}
当我尝试执行时,我得到一个分辨率失败异常。当视图模型有一个空的构造函数时,这很有效。似乎构造函数注入有问题。
如果我像这样加载模块:
var searchView = Container.Resolve<SearchBoxView>();
searchView.DataContext = Container.Resolve<SearchBoxViewModel>();
//RegionManager.RegisterViewWithRegion(RegionNames.SearchRegion, typeof(SearchBoxView));
RegionManager.Regions[RegionNames.SearchRegion].Add(searchView);
有用。
有没有可能用 xaml 做到这一点(我个人认为更好)?
顺便说一句:我正在使用 wpf 创建一个应用程序,该应用程序主要与 web 服务进行通信。我应该使用什么:unity 或 MEF,两者之间的最大区别是什么?
谢谢,拉菲