从XAML将ViewModel传递给User Control构造函数

ins*_*ide 0 .net c# wpf dependency-injection mvvm

在我的MVVM应用程序中,我正在尝试创建一个可在多个应用程序之间共享的可重用用户控件,这里是构造函数

public MyUserControl(IMyViewModel viewModel)
{
    InitializeComponent();
    DataContext = viewModel;
}
Run Code Online (Sandbox Code Playgroud)

所以我的计划是每个应用程序只将它自己的viewmodel提供给共享视图.

现在的问题是如何将viewmodel对象从XAML代码传递给构造函数:

<my:MyUserControl "somehow pass a viewmodel object from here">
Run Code Online (Sandbox Code Playgroud)

谢谢

Cha*_*ger 5

你不能,你需要一个无参数的构造函数.你能做的最好就是直接绑定:

<my:MyUserControl DataContext="{Binding Path.To.ViewModel}">
Run Code Online (Sandbox Code Playgroud)

实际上,我并不完全正确.在WPF 4中,您可以使用arguments指令.但我真的不会,这不是真正惯用的WPF.