空或空时不显示多重装订工具提示

时间:2013-03-18 21:18:25

标签: wpf xaml triggers tooltip multibinding

我假设这不起作用的原因是因为我的触发器正在检查空字符串或null,但我真正拥有的是具有Text属性为空(或为null)的文本块。有谁知道如何轻松修改我的触发器来实现这一目标?我已经搞了半个小时尝试不同的绑定方式/触发器/数据触发器,没有运气。

<ListView.ItemContainerStyle>
   <Style TargetType="ListViewItem">

      <Setter Property="ToolTip">
         <Setter.Value>
            <!--Can't be directly in tool tip, cuz tool tip is object. StringFormat will only work with string-->
            <TextBlock>
               <TextBlock.Text>
                  <MultiBinding StringFormat="{}ID: {0}&#x0a;X: {1}&#x0a;Y: {2}">
                     <Binding Path="MyClass.Id"/>
                     <Binding Path="MyClass.x"/>
                     <Binding Path="MyClass.y"/>
                  </MultiBinding>
               </TextBlock.Text>
            </TextBlock>
         </Setter.Value>
      </Setter>

      <Style.Triggers>
         <Trigger Property="ToolTip.Content"  Value="{x:Static System:String.Empty}">
            <Setter Property="ToolTip.Visibility" Value="Collapsed" />
         </Trigger>
         <Trigger Property="ToolTip.Content" Value="{x:Null}">
            <Setter Property="ToolTip.Visibility" Value="Collapsed" />
         </Trigger>
     </Style.Triggers>

   </Style>
</ListView.ItemContainerStyle>

1 个答案:

答案 0 :(得分:1)

所以我实际上保持上面的风格完全相同。似乎问题是当我的“MyClass”对象为null时,会显示一个空的工具提示。

但是当“MyClass”为空时,我真的希望工具提示停止显示。

我使用以下数据触发器解决了这个问题:

  <DataTrigger Binding="{Binding Path=MyClass}" Value="{x:Null}">
     <Setter Property="ToolTip" Value="{x:Null}" />
  </DataTrigger>

我不再需要原始帖子中的其他触发器。通过在上面的代码段中将ToolTip设置为null,工具提示将自动不显示。