我正在尝试使用带有嵌套视图模型的 MVVM 模式创建应用程序。主视图模型是 ShellView,它包含三个用户控件,每个控件都有自己的视图模型。ShellView ViewModel 是在代码隐藏中创建的,如下所示:
public ShellView()
{
InitializeComponent();
_shellViewModel = new ShellViewModel();
DataContext = _shellViewModel;
}
现在,我的 ShellViewModel 包含其他 ViewModel 作为属性:
public CustomerViewModel CustomerViewModel { get; set; }
public ContactsViewModel ContactsViewModel { get; set; }
如何从 UserControls 的 XAML 访问这些属性?我希望能够做类似的事情:
DataContext="<<ParentWindowViewModel>.CustomerViewModel>
我怎样才能做到这一点?我已经尝试过:
DataContext="{Binding DataContext.CustomerViewModel, RelativeSource={RelativeSource FindAncestor, AncestorType=Window, AncestorLevel=1}, Path=DataContext.CustomerViewModel}">
但调试器说“无法在'对象'类型的数据上下文中解析属性'CustomerViewModel'。任何帮助将不胜感激。