使用MVVM结构处理WPF应用程序。动态绑定到Window的MenuItem上的ViewModel命令
我的窗口显示一个菜单和当前的ViewModel。在菜单的一个MenuItems中,我想列出在当前ViewModel中找到的一些命令。菜单中列出的命令将根据ViewModel而改变。
我得到了这个工作很好,但风格搞砸了 - Command MenuItems在另一个菜单框或其他东西。我会附上截图。
我在CommandViewModel中包装了ViewModel的ICommand对象(在此实例中是RelayCommands),它暴露了菜单上我想要的Command和Display字符串。这些CommandViewModel在列表中:CurrentWorkspace.AdditionalOptionsCommands
。
这里是菜单的XAML。就像我说的那样,它起作用,它显示正确的项目和命令被执行。显示不正确 - 任何人都可以告诉我为什么以及如何解决它?看截图。
<Menu>
<MenuItem Header="_Additional Options..." ItemsSource="{Binding Path=CurrentWorkspace.AdditionalOptionsCommands}">
<MenuItem.ItemTemplate>
<DataTemplate DataType="{x:Type vm:CommandViewModel}">
<MenuItem Header="{Binding Path=DisplayText}" Command="{Binding Path=Command}"/>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
<MenuItem Header="_Testing">
<MenuItem Header="This looks right" />
<MenuItem Header="This looks right" />
</MenuItem>
</Menu>
当前外观:
所需的外观:
非常酷,谢谢! – 2011-05-27 16:55:54