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)
谢谢
你不能,你需要一个无参数的构造函数.你能做的最好就是直接绑定:
<my:MyUserControl DataContext="{Binding Path.To.ViewModel}">
Run Code Online (Sandbox Code Playgroud)
实际上,我并不完全正确.在WPF 4中,您可以使用arguments指令.但我真的不会,这不是真正惯用的WPF.