#wpf #data-binding #datagrid #contextmenu
Вопрос:
У меня есть контекстное меню, которое должно открываться при нажатии кнопки в строке сетки данных. У меня возникли проблемы с привязкой объекта строки к параметру команды button.
<DataGrid Grid.Row="2" SelectionMode="Single" AutoGenerateColumns="False" GridLinesVisibility="Horizontal" CanUserAddRows="True" ItemsSource="{Binding Results}" IsReadOnly="True">
<DataGrid.Resources>
<ContextMenu x:Key="RowMenu" DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Command1" Command="{Binding DataContext.Command1, RelativeSource={RelativeSource AncestorType=UserControl}}" CommandParameter="{Binding}" />
<MenuItem Header="Command2" Command="{Binding DataContext.Command2, RelativeSource={RelativeSource AncestorType=UserControl}}" CommandParameter="{Binding}" />
</ContextMenu>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="Button_Click"></Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid>
Как привязать параметр команды в контекстном меню, который должен отображаться при нажатии кнопки для строки внутри сетки данных. Идея состоит в том, чтобы выполнить некоторое действие над выбранной строкой с помощью нажатия кнопки. Кнопка дает визуальный сигнал для открытия контекстного меню.
Заранее спасибо.
Комментарии:
1. Контекстное меню не является частью дерева visula, к которому принадлежит кнопка. Вы должны привязать и то, и другое к контексту данных, определяющему команду.