我有一个DataGrid
,其中包含DataRows列表ItemSource
。我希望每个单元格都有ToolTip
个DataCell
个值,因此我在ToolTipService.ToolTip
对象上使用了MultiBinding。 Converter返回当前数据(作为字符串),但ToolTip
显示TextBlock
的系统名称。我试图执行here中的操作,但结果是一样的:它会返回TextBlock
系统名称,但不会返回我期望的值。
知道我错过了什么吗?
提前致谢。
XAML:
<TextBlock Padding="5,0,5,0" HorizontalAlignment="Center" VerticalAlignment="Center"
Text="{Binding Path=[1][cell_value], Converter={StaticResource Converter1}}" FlowDirection="LeftToRight">
<ToolTipService.ToolTip>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="F {0}{1}" Converter="{StaticResource Converter2}">
<Binding Path="[1][updted_by]" />
<Binding Path="[1][v_date]" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</ToolTipService.ToolTip>
转换器:
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
try
{
int v = 0;
if (values[0] == null)
return string.Empty;
int.TryParse(values[0].ToString(), out v);
if (v < 1)
return string.Empty;
string result1 = string.Empty;
string result2 = string.Empty;
result1 = ManageBL.GetUserNameStringById((int)values[0]);
// now convert the date
if (values[1] == null || values[1] == DBNull.Value)
return Binding.DoNothing;
DateTime dt = DateTime.MinValue;
DateTime.TryParse(values[1].ToString(), out dt);
if (dt == DateTime.MinValue || dt == DateTime.Parse("01/01/1900"))
{
return null;
}
result2 = dt.ToShortDateString();
return result1 + result2;
}
catch (Exception)
{
return Binding.DoNothing;
}
}
答案 0 :(得分:2)
尝试直接将MultiBinding设置为工具提示值
<ToolTipService.ToolTip>
<MultiBinding StringFormat="F {0}{1}" Converter="{StaticResource Converter2}">
<Binding Path="[1][updted_by]" />
<Binding Path="[1][v_date]" />
</MultiBinding>
</ToolTipService.ToolTip>
根据reference。