我有一个WPF数据网格,它使用ItemsSource属性绑定到自定义类对象列表。 Grid有一个DataGridHyperlinkColum,它绑定到自定义类中的属性/字段。 我希望在自定义类中的另一个属性具有特定值时禁用此超链接。我怎样才能做到这一点?
答案 0 :(得分:3)
您可以将Style
与DataTrigger
一起使用。
以下示例标记会在Hyperlink
返回“x”时禁用YourOtherProperty
:
<DataGridHyperlinkColumn Header="ColA" Binding="{Binding YourLinkProperty}">
<DataGridHyperlinkColumn.CellStyle>
<Style TargetType="DataGridCell">
<Style.Resources>
<Style TargetType="Hyperlink">
<Style.Triggers>
<DataTrigger Binding="{Binding YourOtherProperty}" Value="x">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Style.Resources>
</Style>
</DataGridHyperlinkColumn.CellStyle>
</DataGridHyperlinkColumn>
它应该给你这个想法。
答案 1 :(得分:1)
我需要在WPF DataGrid单元格中禁用链接的类似功能,但在我的单元格中有EventSetter,所以我需要对@ mm8提出的解决方案进行一些修改
<DataGridHyperlinkColumn Binding="{Binding Converter={x:Static util:GetMemberName.Instance}}" Header="Member Name">
<DataGridHyperlinkColumn.CellStyle>
<Style TargetType="Hyperlink">
<Setter Property="IsEnabled" Value="{Binding HasPermission}">
</Setter>
</Style>
</DataGridHyperlinkColumn.CellStyle>
<DataGridHyperlinkColumn.ElementStyle>
<Style>
<EventSetter Event="Hyperlink.Click" Handler="Member_Hyperlink_Click" />
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>