Avalonia DataGrid 按钮绑定事件

<DataGridTemplateColumn Header="操作" Width="200">
  <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">

        <StackPanel IsVisible="{Binding IsLock}">
          <Button Margin="5,0"
                  Classes="Basic"
                  ToolTip.Tip="点击解锁"
                  DataContext="{Binding $parent[UserControl].DataContext}"
                  x:DataType="setting:AppSettingViewModel"
                  Command="{Binding SettingActionCommand}"
                  CommandParameter="{Binding $parent.DataContext}"
                  Tag="edit">
            <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
              <avalonia:MaterialIcon Kind="Unlocked" />
            </StackPanel>
          </Button>
        </StackPanel>

        <StackPanel IsVisible="{Binding IsLock, Converter={StaticResource InverseBoolConverter}}">
          <Button Margin="5,0"
                  Classes="Basic"
                  ToolTip.Tip="点击锁定"
                  DataContext="{Binding $parent[UserControl].DataContext}"
                  x:DataType="setting:AppSettingViewModel"
                  Command="{Binding SettingActionCommand}"
                  CommandParameter="{Binding $parent.DataContext}"
                  Tag="edit">
            <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
              <avalonia:MaterialIcon Kind="Lock" />
            </StackPanel>
          </Button>
        </StackPanel>

        <Button Margin="5,0" 
                Classes="Basic" 
                ToolTip.Tip="点击修改" 
                DataContext="{Binding $parent[UserControl].DataContext}"
                x:DataType="setting:AppSettingViewModel"
                Command="{Binding SettingActionCommand}"
                CommandParameter="{Binding $parent.DataContext}"
                Tag="edit">
          <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
            <avalonia:MaterialIcon Kind="EditCircle" />
          </StackPanel>
        </Button>
        <Button Margin="5,0" 
                Classes="Basic Accent" 
                DataContext="{Binding $parent[UserControl].DataContext}"
                x:DataType="setting:AppSettingViewModel"
                Command="{Binding SettingActionCommand}"
                CommandParameter="{Binding $parent.DataContext}"
                ToolTip.Tip="点击删除"  
                Tag="delete">
          <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
            <avalonia:MaterialIcon Kind="DeleteCircle" />
          </StackPanel>
        </Button>
      </StackPanel>
    </DataTemplate>
  </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

  

posted @ 2025-04-21 22:47  一步一个坑  阅读(238)  评论(0)    收藏  举报