私はWPFアプリケーションを作成し、MVVMパターンに従っています。 xamlにコンテキストメニューがあり、コマンドとヘッダテキストをバインドする必要があります。次のコードを使用して、コンテキストメニューのヘッダーを、観察可能なコレクションであるBOListのプロパティである「MenuItemName」にバインドできます。私の問題は、コマンドは解雇されていないということですか?コンテキストメニューのアイテムソースをdatacontextに変更します。MVVMを使用したコンテキストメニュー項目のWPF +バインディングコマンドと項目
(DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}")
コマンドは正常ですが、私のヘッダーは空白になります。私のヘッダーとメニュー項目のコマンドをバインドする方法はありますか?ここでコマンドMenuClickはVMのIcommandプロパティであり、MenuItemNameはリストボックスにバインドされた観測可能なコレクションであるBOList内のプロパティです。コンテキストメニューで
<Grid>
<StackPanel Orientation="Vertical">
<Button x:Name="btnClickMe" Command="{Binding ButtonCommand}" Content="Click Me" />
<ListBox ItemsSource="{Binding BOList}" x:Name="lstDemo" SelectedItem="{Binding BussinessObj,Mode=OneWayToSource}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="stkStyleRender" Orientation="Horizontal" Background="Cyan" Width="525" Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}" >
<TextBlock x:Name="txtId" Text="{Binding FirstName}"></TextBlock>
<TextBlock x:Name="txtName" Text="{Binding LastName}"></TextBlock>
<StackPanel.ContextMenu>
<ContextMenu x:Name="cntMnuTest" ItemsSource ="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}" >
<MenuItem Header="{Binding MenuItemName}" Command="{Binding MenuClick}" CommandParameter="Icon"></MenuItem>
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
を助けたMenuItemNameはViewModelにのように何を見ていますか? Beinding Expressionエラーもコンソール出力で調べ、表示されていればそれを投稿してください。 – Berryl