Я хочу разработать общий контекстменю в wpf с mvvm. Я хотел бы отобразить его в каждой модели viewModel, имеющей представление list со стилем: ItemContainerStyle = "{DynamicResource ListViewItemContainerStyle}".Совет/идея, как я могу получить общее контекстное меню?
Контекстное меню будет иметь 2 варианта, которые будут включены или нет, в зависимости от некоторых ограничений в каждой модели представления. Включенный или нет будет управляться с помощью canececute команды.
У меня нет проблем, если я поместил его в каждый вид внутри списка, но хотел бы иметь его только в одном месте, кроме как в каждом списке. Я попытался поместить его в ListViewItemContainerStyle, но он показывает исключение: «невозможно добавить System.Windows.Controls.ContextMenu в System.Object». Вот мой фрагмент кода
<Style x:Key="ListViewItemContainerStyle"
TargetType="ListViewItem">
.
.
.
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Command="{Binding Path=Command}"
CommandParameter="AddNew">
<MenuItem.Header>
<TextBlock Text="{x:Static p:TextResources.New}" />
</MenuItem.Header>
</MenuItem>
<MenuItem Command="{Binding Path=Command}"
CommandParameter="Delete">
<MenuItem.Header>
<TextBlock Text="{x:Static p:TextResources.Delete}" />
</MenuItem.Header>
</MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
.
.
.
Любая идея о том, как это сделать?
Теперь моя проблема заключается в том, что привязка осуществляется к модели, а не к ViewModel, поэтому команды не будут выполняться. Спасибо! – mekoloko