私はwpfの世界が初めてです。以下のように、シェルにコンテキストメニューがあります。
<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>
AppModules
Modules menuitemの itemssource の各要素には、 typeMainViewType
という名前のプロパティがありますSystem.Type
。menuitem がクリックされたときにリージョンのビューを変更したいのですが、単一のを使用して as コマンド パラメーターを渡すことを考えてICommad
いますshellviewmodel
。MainViewType
ただし、上記のコードは機能しません。なぜModules
メニュー項目が期待どおりに読み込まれるのか疑問に思っていましたitemssource
。
のプロパティが適切にバインドされているため、 Login
menuitem のコマンド バインドも機能しているはずですが、機能していないことに気付きました。誰かがそれを機能させる方法を提案できますか?itemssource
Modules