WPF的DataTemplate:如何创建一个工具提示刚刚在时间?
-
12-09-2019 - |
题
我使用的DataTemplates来呈现一个ItemsControl项目。我想说明每个项目的工具提示。如果我使用的结合,如工具提示=“{结合MyToolTip,模式=单向}”,WPF在开始获取工具提示一次,它被打开时,不更新工具提示。
我的项目执行INotifyPropertyChanged,所以在原则上,我可以生成MyToolTip更改通知。问题是,工具提示基于底层模型许多条信息被产生。这些信息经常改变,这将是既繁琐,效率低下,产生了MyToolTip属性更改通知。此外,我不想工具提示将最初生产的所有项目。相反,我想迫使一个新的工具提示工具提示打开时产生。我该怎么办呢?
解决方案
您将不得不使用一些代码隐藏,但它并不是那么糟糕。
<object ToolTip="{Binding MyToolTip, Mode=OneWay}" ToolTipOpening="MyToolTip_Opening" />
在代码隐藏
private void MyToolTip_Opening(object sender, ToolTipEventArgs e)
{
DependencyObject depObj = sender as DependencyObject;
if (depObj == null) return;
BindingExpression be = BindingOperations.GetBindingExpression(depObj, FrameworkElement.ToolTipProperty);
if (be != null) be.UpdateTarget();
}
不隶属于 StackOverflow