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