向Datagrid Cell WPF添加按钮

时间:2019-05-22 07:06:39

标签: c# wpf xaml

我想在WPF中创建DataGrid控件,其中最后一列有4个按钮。我需要为每行分别更改每个按钮的背景颜色。

 <DataGridTemplateColumn  Header="Progress">    
  <DataGridTemplateColumn.CellTemplate>    
    <DataTemplate>
      <StackPanel Name="spBtnDG" Orientation="Horizontal">
       <Button Name="btnPhaseI" MouseEnter="btnPhaseI_MouseEnter"      Width="110" Height="8"  Content=""/>
       <Button Name="btnPhaseII" MouseEnter="btnPhaseII_MouseEnter"  Width="110" Height="8" Content="" />
       <Button Name="btnPhaseIII" MouseEnter="btnPhaseIII_MouseEnter"   Width="110" Height="8" Content="" />
       <Button Name="btnPhaseIV"  MouseEnter="btnPhaseIV_MouseEnter" Width="110" Height="8" Content="" />
      </StackPanel>
     </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
   </DataGridTemplateColumn>

当我更改第一个按钮的背景颜色时,它将更改每行中每个第一个按钮的背景颜色。我需要有能力分别更改每一行。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在事件MouseEnter的函数中,您需要将Source对象中的属性MouseEventArgs强制转换为Button并将其存储为变量。然后,您可以更改其背景。 示例:

private void btnPhaseI_MouseEnter(object sender, MouseEventArgs e)
{
  var btn = (Button)e.Source;
  btn.Background = Brushes.Aqua;
}