将鼠标悬停在WPF中包含斜杠的单元格上时,向工具提示添加文本
我在WPF数据网格中添加了一个工具提示,以便在鼠标悬停时显示数据。我想知道,如果只将鼠标悬停在带有斜杠的数据上,是否还可以向工具提示中添加文本 数据的EX值为:2.34/25和22/2 将鼠标悬停在带有斜杠的数据上时,工具提示的EX为:TEST MSG 2.34/25将鼠标悬停在WPF中包含斜杠的单元格上时,向工具提示添加文本,wpf,c#-4.0,wpf-controls,wpfdatagrid,Wpf,C# 4.0,Wpf Controls,Wpfdatagrid,我在WPF数据网格中添加了一个工具提示,以便在鼠标悬停时显示数据。我想知道,如果只将鼠标悬停在带有斜杠的数据上,是否还可以向工具提示中添加文本 数据的EX值为:2.34/25和22/2 将鼠标悬停在带有斜杠的数据上时,工具提示的EX为:TEST MSG 2.34/25 </UserControl.Resources> <Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}" >
</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>
您可以使用两个转换器和数据触发器 检查文本是否包含斜杠的第一个转换器:
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>
考虑对工具提示使用命令。在代码隐藏中,检查数据内容中是否有斜杠,如果斜杠存在,则显示不同的工具提示,如果没有,则显示默认工具提示。使用转换器
并传入文本值。如果使用转换器,如何检查文本中是否有斜杠it@PoweredByOrange你能举个例子吗