在我的wpf项目中,我有一个usercontrol,其中包含我的程序的菜单栏。我不确定这是正确的方法,但保持我分离的好方法。此菜单栏包含许多使用mvvmlight toolkit eventtocommand进行命令绑定的按钮,这非常有效。但是我有一个打印按钮,我需要将一个Visual对象从mainwindow传递给usercontrol中的commandparameter。
Usercontrol.xaml - 其中MasterGrid是主窗口中的元素名称。
<MenuItem Header="_Print" Command="{Binding PrintDiagramCommand}"
CommandParameter="{Binding ElementName=MasterGrid}"
InputGestureText="Ctrl+P">
<MenuItem.Icon>
<Image Height="24" Width="24" Source="/Resources/Icons/print.ico"/>
</MenuItem.Icon>
</MenuItem>
我真的很感谢你的帮助。
答案 0 :(得分:0)
试试这个,虽然我没有测试过。 ElementName和x之间存在差异:如何找到元素作为contextmenu的参考不是VisualTree的一部分,因此ElementName不会工作。
CommandParameter="{Binding Source={x:Reference MasterGrid}}"
我希望这会有所帮助。
注意:访问ViewModel中的元素不是一个好习惯。