我使用MEF容器像下面注入我的视图模型,以我的观点:注射视图模型查看与MEF - 从源绑定不工作 - WPF
[ImportingConstructor]
public MainView(IRepository repository, MainViewModel viewModel)
{
InitializeComponent();
mMainViewModel = viewModel;
DataContext = viewModel;
viewModel.PropertyChanged += OnViewModelPropertyChanged;
}
,一切工作正常。我在视图和视图模型上都有导出属性。
问题是,当通过某种方法在ViewModel上更新值\属性时,它不反映在UI上。我甚至试图将模式设置为两种方式 - 仍然无法工作。我有OnPropertyChanged调用所有属性设置器,但不工作。不过,在后面的代码中,如果我将一个propertychanged事件方法附加到viewmodel,我会得到事件通知,这是我能够使用它们更新视图的唯一方法,但这不应该是必需的。我只是不知道为什么我的视图没有直接在绑定元素上响应propertychanged通知。
任何想法我可能做错了什么?谢谢。
为什么你想要通过构造器注入任何东西?在处理MVVM时没有任何有效的理由。你的基本概念是错误的 –
你能解释一下基本概念是什么意思吗?我知道我可以做建设者注入或属性注入。在视图的情况下,我选择了构造函数注入,所以我可以设置DataContext。这种方法有什么问题?谢谢。 –
看看MVVMlight如何将MainViewModel绑定到MainView(它在XAML中完成)。将库注入View的原因是什么? –