Я создал приложение WPF и следую шаблону MVVM. У меня есть контекстное меню в моем xaml, и мне нужно связать команду и текст заголовка. Используя следующий код, я могу связать заголовок контекстного меню с «MenuItemName», которое является свойством в BOList, которое является наблюдаемой коллекцией. Моя проблема в том, что команда не увольняется? Я изменяю источник элемента контекстного меню на datacontext
(DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}")
Команда работает нормально, но мой заголовок становится пустым. Есть ли способ привязать мой заголовок и команду пункта меню? Здесь команда MenuClick - это свойство Icommand в виртуальной машине, а MenuItemName - это свойство внутри BOList, которое является наблюдаемой коллекцией, связанной с моим ListBox.
<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>