gpt4 book ai didi

wpf - 在选定的数据网格上显示一个按钮

转载 作者:行者123 更新时间:2023-12-04 13:33:28 26 4
gpt4 key购买 nike

我有一个带有行数的数据网格。每行都有作为 DeleteRow 按钮。只有被选中的行应该有这个按钮可见。在我看来,可能至少有两种解决方案:
a) 将按钮的 Visibility-property 绑定(bind)到包含 DatGridRow 的 IsSelected-property
或者
b)使用按钮中的触发器仅在选择包含行时才可见。

这是我为选项 b 提供的代码,它不起作用:

<DataGridTemplateColumn Width="50">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="X" Tag="{Binding}" Click="DeletRow_Click" Visibility="Hidden">
<Button.Style>
<Style x:Name="ButtonVisibility">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}},Path=IsSelected}" Value="True">
<Setter Property= "Button.Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>

这可能真的很容易,但我一直盯着它看,现在让我眼花缭乱:S
谢谢

最佳答案

它不起作用,因为 Dependency Property Value Precedence .您不能更改 Style 中的本地值.移动Visibility.Hidden进入 Style它会起作用。

<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="X" Tag="{Binding}" Click="DeletRow_Click">
<Button.Style>
<Style x:Name="ButtonVisibility">
<Setter Property="Button.Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}, Path=IsSelected}" Value="True">
<Setter Property="Button.Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>

关于wpf - 在选定的数据网格上显示一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com