首页 > 解决方案 > 在 WPF 中 dataGridTemplateColumn.CellTemplate 的同一按钮单击事件后面调用不同的函数

问题描述

如果条目被删除,我已经更改了按钮的内容,然后将其替换为恢复。但后面执行的函数调用或按钮点击事件是删除函数。我想在恢复按钮后面执行恢复功能。

以下是我的代码:

       <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button  Name="btnDelete" 
                            Click="BtnDelete_Click">
                                <Button.Style>
                                    <Style TargetType="Button">
                                        <Setter Property="Content" Value="Delete" />

                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding deleted}" Value="False">
                                                <Setter Property="IsEnabled" Value="True"  />


                                            </DataTrigger>
                                            <DataTrigger Binding="{Binding deleted}" Value="True">
                                                <Setter Property="IsEnabled" Value="True"  />
                                                <Setter Property="Content" Value="Restore"></Setter>

                                            </DataTrigger>
                                        </Style.Triggers>

                                    </Style>
                                </Button.Style>
                            </Button>

                        </DataTemplate>

                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

这就是 UI 的外观。 在此处输入图像描述

标签: c#.netwpfxaml

解决方案


解决问题的一个简单方法是Content在后面的代码中使用按钮属性。

private void BtnDelete_Click(object sender, RoutedEventArgs e)
{
   Button button = (Button)sender;
   if (button.Content.ToString() == "Delete")
   {
      //Do delete stuff
   }
   else
   {
      //Do restore stuff
   }
}

推荐阅读