有一个标准DataGrid
,其中每一行都是一个Invoice对象。
Invoice对象有一些布尔属性,如AAA,因此它对报告有影响 用户打算打印。
我想根据此布尔值更改PRINT按钮的ToolTip
。
我认为可以通过XAML和代码完成。
方法1。
<Button Content="Print" ToolTip="Not shown" ToolTipOpening="Button_ToolTipOpening"/>
方法2。我需要帮助......
<DataGridTemplateColumn >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Width="19" Height="15" Tag="{Binding Inv.Id}"
Background="{DynamicResource ButtonLB}" Click="btnPrintInvoice_Click" Margin="5,0,0,0" BorderBrush="#FF0565B8" Foreground="{DynamicResource CaptionBrush}" Name="btnPrintInvoice" >
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="UIElement.IsEnabled" Value="True" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsAAA, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" Value="True">
<Setter Property="StackPanel.ToolTip"
Value="{x:Static p:Resources.PrintInvoice}"
TargetName="self" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
因此,如果IsAAA = true,则工具提示应为“A1”,反之亦然“A2”。
答案 0 :(得分:2)
您可能需要为此编写一个转换器,当输入值为true时返回字符串值A1,如果输入为false,则返回A2。
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if((bool)value == true)
{
return "A1";
}
else
{
return "A2";
}
}
然后将ToolTip内容绑定到IsAAA属性,并在绑定中指定转换器。