2013-07-30 16 views
2

我已將工具提示添加到我的WPF數據網格以在鼠標懸停時顯示數據。我想知道是否有可能在僅將鼠標懸停在具有斜線的數據上時向該工具提示添加文本。將鼠標懸停在WPF中的斜線的單元格上時將文本添加到工具提示

數據EX將是:工具提示的2.34/25和22/2

EX以斜線上空盤旋數據時將是:TEST味精2.34/25

</UserControl.Resources> 
     <Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}" > 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="LightBlue"/> 
        <Setter Property="Foreground" Value="Black"/> 
       </Trigger> 
      </Style.Triggers> 
       <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content.Text}" /> 
      <Setter Property="Height" Value="25" /> 
     </Style> 
</UserControl.Resources> 
+0

考慮使用工具提示的命令。在後面的代碼中,檢查斜線數據的內容,如果斜線存在,則顯示不同的工具提示,如果不是,則爲默認工具提示。 – ToastyMallows

+1

使用'converter'並傳入文本值。 – PoweredByOrange

+0

如果我使用轉換器我將如何檢查文本是否有斜線 – Robert

回答

3

您可以使用兩種轉換器和數據觸發器。檢查

第一轉換,如果文本中包含斜線:

public class SlashTextConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (value != null && value.ToString().Contains("/")) 
      return true; 
     else 
      return false; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

第二轉換器格式化自定義消息:

public class CustomToolTipMessage : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return string.Format("TEST MSG {0}", value); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

這裏是風格與DataTrigger:

<Window.Resources> 
    <local:SlashTextConverter x:Key="slashConverter" /> 
    <local:CustomToolTipMessage x:Key="customToolTipConverter" /> 

    <Style TargetType="{x:Type DataGridCell}"> 
     <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content.Text}" /> 

     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="True"> 
       <Setter Property="Background" Value="LightBlue"/> 
       <Setter Property="Foreground" Value="Black"/>      
      </Trigger> 

      <DataTrigger Binding="{Binding Path=Content.Text, RelativeSource={RelativeSource Mode=Self}, Converter={StaticResource slashConverter}}" Value="True"> 
       <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content.Text, Converter={StaticResource customToolTipConverter}}" />           
      </DataTrigger>  
     </Style.Triggers>         
    </Style> 
</Window.Resources> 
相關問題