C# WPF将CommandParameter绑定到perent窗口的元素
我构建了一些WPF应用程序,作为MainView,在这个MainView中我有一个按钮,可以打开一个设置窗口和一个模型,我希望能够在这个设置视图中显示或隐藏它。(显示/隐藏按钮最初位于MainView本身)问题在于我不知道如何使用SettingsView中的CommandParameter绑定到MainView中的元素 主视图中的元素:C# WPF将CommandParameter绑定到perent窗口的元素,c#,wpf,commandparameter,C#,Wpf,Commandparameter,我构建了一些WPF应用程序,作为MainView,在这个MainView中我有一个按钮,可以打开一个设置窗口和一个模型,我希望能够在这个设置视图中显示或隐藏它。(显示/隐藏按钮最初位于MainView本身)问题在于我不知道如何使用SettingsView中的CommandParameter绑定到MainView中的元素 主视图中的元素: <Dev:DevUnitView x:Name="DevData" DataContext="{Bindin
<Dev:DevUnitView x:Name="DevData" DataContext="{Binding MainModel.DevUnit}" Visibility="Visible" Margin="994,656,74,-83"/>
<Button Content="DEV" Command="{Binding Settings.DevVisibilityCommand}" CommandParameter="{Binding ElementName=DevData}" Margin="406,359,810,259"/>
在这种情况下,它无法解析数据上下文中的“DevUnit”,我还尝试了名称和其他变体,但没有成功
在主视图中工作的旧按钮:
<Dev:DevUnitView x:Name="DevData" DataContext="{Binding MainModel.DevUnit}" Visibility="Visible" Margin="994,656,74,-83"/>
<Button Content="DEV" Command="{Binding Settings.DevVisibilityCommand}" CommandParameter="{Binding ElementName=DevData}" Margin="406,359,810,259"/>
现在,无论我如何绑定它,我都会得到Null UserControl。旧按钮(通过
{Binding ElementName=DevData}
)获取DevUnitView作为CommandParameter,而“setingsview中的按钮”则获取setingsview的可选DevUnitView祖先的数据上下文
对象。这是两件完全不同的事情。DevUnitView是SettingsView可视化树中的祖先吗?为什么是DataContext?@Clemens不,它不是,MianView是SettingsView a可视化树中的一个祖先,“DevUnitView”作为DataContext绑定到MainView。您应该尝试通过尝试使用XAML编写的任何东西来理解WPF不是您可以掌握的东西。阅读基本概念是必要的,也是不可避免的。第一个或第二个CommandParameter绑定似乎都没有意义。如果您在code behind中打开一个新的SettingsView窗口,您可以在显示该窗口之前简单地设置其DataContext,例如,像SettingsView.DataContext=SomethingSensive代码>。但是,我们不知道您正试图使用什么作为SettingsView的DataContext。@Clemens我想发送一个不在我的SettingsView中但位于不同视图上的视图,是否有任何合理的方法可以做到这一点?@Clemens如果有帮助,我在这个项目中也使用Prism