使用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