The*_*erd 6 wpf datagrid visibility button selected
我有一个带有数字行的数据网格.每行都有DeleteRow按钮.只有选中的行才能显示此按钮.我认为可能至少有两种解决方案:
a)将按钮的Visibility属性绑定到包含DatGridRow的IsSelected属性
要么
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>
Run Code Online (Sandbox Code Playgroud)
这可能很容易,但我一直盯着看,这让我眼花缭乱:S
谢谢
LPL*_*LPL 11
由于依赖属性值优先级,它不起作用.您无法更改a中的本地值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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4588 次 |
| 最近记录: |