Привязка строки к элементу контекстного меню, связанному с кнопкой в столбце datagrid в wpf

#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, к которому принадлежит кнопка. Вы должны привязать и то, и другое к контексту данных, определяющему команду.