Qwe*_*tie 4 wpf tooltip datatemplate itemscontrol
我正在使用DataTemplates在ItemsControl中呈现项目。我想显示每个项目的工具提示。如果我使用诸如ToolTip =“ {Binding MyToolTip,Mode = OneWay}”之类的绑定,则WPF会在开始时获取一次工具提示,并且在打开时不会更新工具提示。
我的项目实现了INotifyPropertyChanged,因此原则上我可以为MyToolTip生成更改通知。问题是,工具提示是基于基础模型中的许多信息生成的。这些信息经常更改,并且为MyToolTip属性生成更改通知既麻烦又效率低下。此外,我不希望最初产生所有项目的工具提示。相反,我想强制在打开工具提示时生成一个新的工具提示。我该怎么做?
您将不得不使用一些隐藏的代码,但这还不错。
<object ToolTip="{Binding MyToolTip, Mode=OneWay}" ToolTipOpening="MyToolTip_Opening" />
Run Code Online (Sandbox Code Playgroud)
在代码背后
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();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3267 次 |
最近记录: |