我这样做(值是一个字符串列表):
protected override bool _setValue(object value)
{
ToolTip toolTip = new ToolTip();
toolTip.Content = string.Join("\r\n", value);
return true;
}
当我将鼠标悬停在包含工具提示的项目上时,会显示" System.Generic.List' 1 [System.String]"
显然string.Join()返回一个列表对象,而不是字符串。
如何让工具提示显示多行文字?
答案 0 :(得分:1)
String.Join
方法的返回类型是字符串而不是List。您需要将对象类型调用为List以获得正确的答案。其他方面,它的编译器只使用value.ToString()
,而value是一个对象而不是List。刚试了一下
public static void Main(string[] args)
{
var items = new List<string>
{
"Test 1",
"test 2"
};
WillPrintCorrect(items);
WillPrintWrong(items);
BestWay(items);
Console.ReadLine();
}
public static void WillPrintCorrect(object value)
{
Console.WriteLine(string.Join(Environment.NewLine,(List<string>)value));
}
public static void WillPrintWrong(object value)
{
Console.WriteLine(string.Join(Environment.NewLine, value));
}
public static void BestWay(List<string> value)
{
Console.WriteLine(string.Join(Environment.NewLine, value));
}