我是 wpf 世界的新手。我在 shell 中有一个上下文菜单,如下所示:
<ContextMenu>
<MenuItem Header="Login"
Command="{Binding WorkSpaceViewSetter}" CommandParameter="DemoApplication.View.LoginView">
<MenuItem.Icon>
<Image Height="16" Width="16" Stretch="Uniform" Source="/Images/login.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Modules" ItemsSource="{Binding AppModules}">
<MenuItem.Icon>
<Image Source="/Images/modules.png"/>
</MenuItem.Icon>
<MenuItem.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding ModuleName}"/>
<Setter Property="Command" Value="{Binding ElementName=win, Path=DataContext.WorkSpaceViewFromType}"/>
<Setter Property="CommandParameter" Value="{Binding MainViewType}"/>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
</ContextMenu>
Modules menuitem的 itemssourceAppModules
中的每个元素都有一个名为MainViewType
type的属性System.Type
。我想在单击菜单项时更改区域的视图,并且正在考虑在中使用单个ICommad
并shellviewmodel
传递MainViewType
as 命令参数。但是,上面的代码不起作用。我想知道为什么菜单项会按预期Modules
填充。itemssource
我注意到Login
menuitem 上的命令绑定即使它应该有也不起作用,因为它的itemssource
属性Modules
得到了正确的限制。有人可以建议如何使它工作吗?