mag*_*gol 1 c# wpf xaml binding mvvm
如何根据WPF中的情况自定义菜单?我有一个带有基本菜单的主窗口.在这个窗口中,我可以加载不同的UserControls,然后我希望根据使用的用户控件,使用不同的菜单选项扩展菜单.
例:
Main menu:
File
Open
-
MRU
-
Exit
For viewing of UserControl 1:
File
Open
Edit
-
MRU
-
Exit
For viewing of UserControl 2:
File
Open
Edit
-
MRU
-
Exit
View
Show codes
Show capital letters
In Editing
File
Open
Save
Save as...
-
MRU
-
Exit
Edit
Add
Remove
Move
-
Cancle Edit
Run Code Online (Sandbox Code Playgroud)
我将菜单绑定到Collection,并在加载时让不同的UserControls更改Collection.
编辑 - 这是一个例子
您的主视图将包含这样的内容
<Menu ItemsSource="{Binding Path=CurrentUserControl.MenuItems}">
<Menu.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Header" Value="{Binding MenuItemText}" />
<Setter Property="Command" Value="{Binding MenuItemCommand}" />
<Setter Property="CommandParameter" Value="{Binding MenuItemCommandParameter}" />
</Style>
</Menu.Resources>
</Menu>
Run Code Online (Sandbox Code Playgroud)
虽然每个UserControl都包含您想要显示的MenuItem的Collection属性
public class MenuItem
{
public string MenuItemText {get; set;}
public ICommand MenuItemCommand {get; set;}
public object MenuItemCommandParameter {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
...
public ObservableCollection<MenuItem> MenuItems;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |