У меня есть этот XAML:
<DataGridTextColumn Binding = "{Binding Vessel}" Header = "Vessel" IsReadOnly = "True">
<DataGridTextColumn.CellStyle>
<Style TargetType = "DataGridCell">
<Setter Property = "ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem x:Name = "mVesselSize" Header = "Size"/>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
Когда я пытаюсь добавить в меню обработчик кликов, я получаю:
"mVesselSize_Click" недействителен. Click не является событием в System.Windows.Controls.DataGridTextColumn.
Что я делаю неправильно? Я думаю, что это может быть связано с тем, что меню находится внутри DataGridTextColumn.CellStyle (я скопировал этот код откуда-то еще при переполнении стека), но я не знаю, как еще создать контекстное меню для конкретной ячейки (столбца) сетки данных .





Кажется, не удается установить обработчик событий в установщике стилей для ContextMenu
Это хитрый способ следить за своими мыслями
<MenuItem x:Name = "mVesselSize" Header = "Size">
<MenuItem.Style>
<Style TargetType = "MenuItem">
<EventSetter Event = "Click" Handler = "mVesselSize_Click"/>
</Style>
</MenuItem.Style>
</MenuItem>
Но обязательно найдутся решения получше
Спасибо. Я пробовал это, но получаю сообщение об ошибке «Элемент« Стиль »не распознан или недоступен». Я вставил блок <MenuItem.Style> под <MenuItem>, как и вы, и больше ничего не менял. Это верно?