2011-09-08 17 views
5

Tengo una aplicación WPF simple con un botón cuya información sobre herramientas se aglutinaba a un TextBlock.Text:información sobre herramientas vacía tema

<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> 

En Button1_Click, que tengo:

textBlock1.Text = null; 

No esperaba información sobre herramientas el botón después de hacer clic en el botón. Sin embargo, estoy recibiendo una información sobre herramientas emty. ¿Cómo puedo solucionar esto?

+0

si utiliza un código subyacente de todos modos, ¿no puede establecer la información sobre herramientas allí directamente? Si no es posible que tenga que usar una plantilla/constructo más complejo (elementos WPF) para la información sobre herramientas, entonces una cadena – Carsten

Respuesta

5

No puede establecer el Text en nulo, se convertirá en una cadena vacía de inmediato.

Solución # 1: un estilo que se despeja el valor:

<!-- 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> 

Solución # 2: Añadir unValueConverter a la unión que devuelve null si el value es String.Empty.

Puede haber otras formas.

+2

la pregunta fue cómo solucionarlo. ¿No es esto más como un comentario? – Carsten

+0

@ CarstenKönig: Se agregaron algunas soluciones provisionales. –

+0

@ CarstenKönig: ... a pesar de que creo que el solo hecho de saber qué causa el problema es suficiente para llevar a la mayoría de las personas a resolver el problema ellos mismos. Así que mi versión anterior probablemente podría haberse mantenido por sí misma. –

Cuestiones relacionadas