[英]Why the tool tip shows the control type?
我正在尝试在工具提示中显示一些文本。 我在互联网上搜索了一些解决方案,但是它不起作用:
XAML:
<TextBlock x:Name="ResultText">
<TextBlock.ToolTip>
<TextBlock x:Name="ResultToolTip" />
</TextBlock.ToolTip>
</TextBlock>
码:
BindingOperations.SetBinding(ResultText, TextBlock.TextProperty, new Binding("MyPath")
{
Source = myObject,
StringFormat = "MyFormat"
});
BindingOperations.SetBinding(ResultToolTip, TextBlock.TextProperty, new Binding("MyPath")
{
Source = myObject,
StringFormat = "MyFormat"
});
这种方法适用于普通的TextBlock
,但对于工具提示,它就像:
它应该以这种方式工作(考虑是否需要MyPath
更改通知, MyObject
类应该继承自INotifyPropertyChanged
接口)
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MyObject myObject = new MyObject { MyPath = "value" };
BindingOperations.SetBinding(ResultText, TextBlock.TextProperty, new Binding("MyPath")
{
Source = myObject,
StringFormat = "MyFormat"
});
BindingOperations.SetBinding(ResultToolTip, TextBlock.TextProperty, new Binding("MyPath")
{
Source = myObject,
StringFormat = "MyFormat"
});
}
}
class MyObject
{
private string _myPath;
public string MyPath
{
get { return _myPath; }
set { _myPath = value; }
}
}
不能完全确定这是否是一个可接受的答案,但通常应使用来自XAML的绑定,如下所示:
<TextBlock x:Name="ResultText" Text="{Binding Source=TextBlockText}">
<TextBlock.ToolTip>
<TextBlock x:Name="ResultToolTip" Text="{Binding Source=TooltipText}"/>
</TextBlock.ToolTip>
</TextBlock>
然后只需在C#代码中创建两个属性,即可使用INotifyPropertyChanged
接口函数。
您可能有理由不这样做
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.