WPFのDataTemplate:どのようにジャストインタイムツールヒントを作成するには?
-
12-09-2019 - |
質問
私はItemsControlにでアイテムをレンダリングするDataTemplatesを使用しています。私は、各項目のツールチップを表示したいです。私は、ツールチップとして結合=「{バインディングMyToolTip、MODE =一方向を}」を使用する場合、WPFは、初めに一度ツールチップを取得し、それが開かれたとき。
ツールチップを更新しません 私はMyToolTipための変更通知を生成する可能性が原則的にので私の項目は、INotifyPropertyChangedのを実装します。問題は、ツールチップは、基礎となるモデルで多くの情報に基づいて生成されます。これらの情報は頻繁に変更し、それが面倒と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