WPFのDataTemplate:どのようにジャストインタイムツールヒントを作成するには?

StackOverflow https://stackoverflow.com/questions/967217

質問

私は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();
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top