我有一个简单的WPF应用程序,其中一个按钮的工具提示绑定到TextBlock.Text:
<Grid>
<Button Height="23" Margin="82,0,120,105" Name="button1" VerticalAlignment="Bottom" ToolTip="{Binding ElementName=textBlock1,Path=Text}" Click="button1_Click">Button</Button>
<TextBlock Height="23" Margin="64,55,94,0" Name="textBlock1" VerticalAlignment="Top" Text="AD" />
</Grid>
在button1_Click中,我有:
textBlock1.Text = null;
按钮点击后,我预计按钮没有工具提示。但是,我得到了一个emty工具提示。我该如何解决这个问题?
答案 0 :(得分:5)
您无法将Text
设置为null,它会立即更改为空字符串。
解决方法#1:清除值的样式:
<!-- Do NOT set the ToolTip on the Button itself -->
<Style TargetType="Button" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Setter Property="ToolTip" Value="{Binding ...}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ...}" Value="{x:Static sys:String.Empty}">
<Setter Property="ToolTip" Value="{x:Null}" />
</DataTrigger>
</Style.Triggers>
</Style>
解决方法#2:如果null
为value
,则向绑定添加ValueConverter
,返回String.Empty
。
可能还有其他方法。