Wpf 如何在DataGridTextColumn';s文本单击

Wpf 如何在DataGridTextColumn';s文本单击,wpf,mvvm,datagrid,Wpf,Mvvm,Datagrid,我有一个具有多个列的DataGrid。一列应该用作引用,但它现在的行为类似于伪文本。如何使用MVVM模式(无事件)单击此文本来执行任何命令 一种方法是通过重新定义列的单元格模板,在单元格中使用按钮 下面是一个例子: <DataGrid ItemsSource="{Binding Items}"> <DataGrid.Columns> <!-- Your first column --> <D

我有一个具有多个列的DataGrid。一列应该用作引用,但它现在的行为类似于伪文本。如何使用MVVM模式(无事件)单击此文本来执行任何命令



一种方法是通过重新定义列的单元格模板,在单元格中使用按钮

下面是一个例子:

<DataGrid ItemsSource="{Binding Items}">
    <DataGrid.Columns>
        <!-- Your first column -->
        <DataGridTemplateColumn Header="Recipe">
            <DataGridTemplateColumn.CellTemplate>
                <!-- Let's redefine the cell template for our column -->
                <ItemContainerTemplate>
                    <Button Content="{Binding RecipeName}" Command="{Binding MyCommand}">
                        <!-- Here we remove the button's default templating by overriding it -->
                        <Button.Template>
                            <ControlTemplate TargetType="Button">
                                <ContentPresenter Content="{TemplateBinding Content}" />
                            </ControlTemplate>
                        </Button.Template>
                    </Button>
                </ItemContainerTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

<DataGrid ItemsSource="{Binding Items}">
    <DataGrid.Columns>
        <!-- Your first column -->
        <DataGridTemplateColumn Header="Recipe">
            <DataGridTemplateColumn.CellTemplate>
                <!-- Let's redefine the cell template for our column -->
                <ItemContainerTemplate>
                    <Button Content="{Binding RecipeName}" Command="{Binding MyCommand}">
                        <!-- Here we remove the button's default templating by overriding it -->
                        <Button.Template>
                            <ControlTemplate TargetType="Button">
                                <ContentPresenter Content="{TemplateBinding Content}" />
                            </ControlTemplate>
                        </Button.Template>
                    </Button>
                </ItemContainerTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>