Wpf 绑定到datacontext之外的属性
我正在创建一个WPF应用程序,在实现我的用户界面想法时遇到了一点困难 我有一个Wpf 绑定到datacontext之外的属性,wpf,data-binding,xaml,mvvm,Wpf,Data Binding,Xaml,Mvvm,我正在创建一个WPF应用程序,在实现我的用户界面想法时遇到了一点困难 我有一个MasterViewModel绑定到main窗口,该窗口公开了一组可观察到的ViewModels。我已经编写了一些命令,这些命令基本上切换了observable集合中的当前视图模型,并随后显示了相应的视图。但是,当应用程序第一次加载时,我向集合中添加了一个HomeViewModel,其中显示了Home(导航)视图。我遇到的问题是,我绑定的命令暴露在MasterViewModel上,因此它们不会“层叠”到items控件中
MasterViewModel
绑定到main窗口
,该窗口公开了一组可观察到的ViewModels
。我已经编写了一些命令,这些命令基本上切换了observable集合中的当前视图模型,并随后显示了相应的视图。但是,当应用程序第一次加载时,我向集合中添加了一个HomeViewModel
,其中显示了Home(导航)视图。我遇到的问题是,我绑定的命令暴露在MasterViewModel
上,因此它们不会“层叠”到items控件中。有人能提供一个或更好的解决方案吗?非常感谢
这是我收到的错误:
System.Windows.Data错误:40:BindingExpression路径错误:
在“对象”“HomeViewModel”(HashCode=5313339)上找不到“MainWindowViewModel”属性。BindingExpression:Path=MainWindowViewModel.LoadClientsCommand
DataItem='HomeViewModel'(HashCode=5313339)
目标元素是“按钮”(名称=“”)
目标属性为“Command”(类型为“ICommand”)
您能提供您的代码场景的代码示例吗
您能提供您的代码场景的代码示例吗
我相信您可以通过以下方式通过RelativeSource访问MasterViewModel的DataContext上的命令:
<Button>
<Button.Command>
<Binding Path="DataContext.MasterViewCommand">
<Binding.RelativeSource>
<RelativeSource
Mode="FindAncestor"
AncestorType="{x:Type MasterViewBaseClass}"
/>
</Binding.RelativeSource>
</Binding>
</Button.Command>
Click me!
</Button>
点击我!
我相信您可以通过以下方式通过RelativeSource访问MasterViewModel的DataContext上的命令:
<Button>
<Button.Command>
<Binding Path="DataContext.MasterViewCommand">
<Binding.RelativeSource>
<RelativeSource
Mode="FindAncestor"
AncestorType="{x:Type MasterViewBaseClass}"
/>
</Binding.RelativeSource>
</Binding>
</Button.Command>
Click me!
</Button>
点击我!
是的,我尝试从这里调整我的想法,但唯一的问题是到达用户控件之外以获取命令。是的,我尝试从这里调整我的想法,但唯一的问题是到达用户控件之外以获取命令。