Нужно задавать меню коллекцией объектов.
public class Color
{
public string Name { get; set; }
}
public ObservableCollection<Color> Colors = new ObservableCollection<Color>()
{
new Color {Name = "black"},
new Color {Name = "white"},
new Color {Name = "red"},
};
Но не могу разобраться как правильно биндить коллекцию. Делаю так, но безрезультатно. Понимаю, что проблема из-за того, что DataContext
не забирается у mainWindow
, но как сделать правильно?
<Window.ContextMenu>
<ContextMenu DataContext="{Binding ElementName=mainWindow, Path=DataContext}"
ItemsSource="{Binding Colors}" />
</Window.ContextMenu>
ContextMenu не являеться частью визуального дерева поэтому он не может найти mainWindow. Данные необходимо брать из ContextMenu.PlacementTarget.
<Window.ContextMenu>
<ContextMenu
DataContext="{Binding Path=PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}"
DisplayMemberPath="Name"
ItemsSource="{Binding Colors}" />
</Window.ContextMenu>
Кстати у вас Colors не свойсто, а поле.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть числовое(decimal) поле ИНН (10, 12 символов)Первые 2-а числа в ИНН - код региона
На этой строке var response = clientPostAsync(APP_PATH + "/Token", content)
У меня есть 2 проекта в solutionВ одном класс, где есть private методы, которые нужно протестировать