来自父级的Usercontrol命令参数

时间:2013-12-08 03:17:44

标签: c# wpf xaml user-controls mvvm-light

在我的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>

我真的很感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

试试这个,虽然我没有测试过。 ElementName和x之间存在差异:如何找到元素作为contextmenu的参考不是VisualTree的一部分,因此ElementName不会工作。

CommandParameter="{Binding Source={x:Reference MasterGrid}}"

我希望这会有所帮助。

  
    

注意:访问ViewModel中的元素不是一个好习惯。