Пишу очень полезную программу для тех кто устал хранить всю информацию в папках и блокнотах о любимом софте (шоткаты, параметры запуска и т.д). Решил что программа будет развиваться и по этому нужно выбрать грамотную архитектуру, для расширения приложения, по мне так MVVM подходит. Ладно, ближе к сути. Нужно создать контекстное меню кнопки для выбора и добавления нового поля. У меня уже есть решение для контекстного меню кнопки, но оно не идеальное так как статическое, жеско закодировано в xaml разметке. По требования моего приложения нужно динамический добавлять команды в контекстное меню из приложения. Для вывода элементов я решил использовать коллекции, создал шаблон данных и вроде бы все хорошо — но результат меня не устроил. При наведении курсора на элемент отображается два выделения, срабатывает выделения для контекстного элемента, а внутри него для меню элемента. Как это можно пофиксисть.
XAML
<Button
x:Name="AddField"
Width="103"
Height="25"
Margin="0,10,34,10"
HorizontalAlignment="Right"
Content="Добавить поле">
<Button.ContextMenu>
<ContextMenu ItemsSource="{Binding MenuItem}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<MenuItem
Header="{Binding Name}"/>
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
</Button.ContextMenu>
</Button>
C# коде: (ViewModel)
public List<MenuItemModel> MenuItem { get; set; } = new List<MenuItemModel>()
{
new MenuItemModel() { Name = "Автор"},
new MenuItemModel() { Name = "Версия"},
new MenuItemModel() { Name = "Лицензия"},
new MenuItemModel() { Name = "Авторские права"},
new MenuItemModel() { Name = "Официальный сайт"},
new MenuItemModel() { Name = "Лицензионный ключ"},
new MenuItemModel() { Name = "Источник"},
new MenuItemModel() { Name = "Хеш-суммы"}
};