在我的MVVM应用程序中,我正在尝试创建一个可在多个应用程序之间共享的可重用用户控件,这里是构造函数
public MyUserControl(IMyViewModel viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
所以我的计划是每个应用程序只将它自己的viewmodel提供给共享视图。
现在的问题是如何将viewmodel对象从XAML代码传递给构造函数:
<my:MyUserControl "somehow pass a viewmodel object from here">
谢谢
答案 0 :(得分:5)
你不能,你需要一个无参数的构造函数。你能做的最好就是直接绑定:
<my:MyUserControl DataContext="{Binding Path.To.ViewModel}">
实际上,我并不完全正确。在WPF 4中,您可以使用arguments directive。但我真的不会,这不是真正惯用的WPF。