問題ない
文字列値をとる依存関係プロパティを作成しました。私はそれをに設定し、TextBlock
それは動作します:
<TextBlock dp:ElementDataContext.ElementName="LvMain">
プロパティElementDataContext.ElementName
が「LvMain」に設定されていることを確認しました。
問題
ここに問題があります。のコンテキストメニューで、を介しTextBlock
てこの依存関係プロパティにバインドしたいと思います。PlacementTarget
これが私がそれをやろうとする方法です。TextBlock
これは、とを含む私のXAMLの抜粋ですContextMenu
。
<TextBlock dp:ElementDataContext.ElementName="LvMain">
<TextBlock.ContextMenu>
<ContextMenu Tag="{Binding PlacementTarget.(dp:ElementDataContext.ElementName), RelativeSource={RelativeSource Self}}">
これは実行時に失敗します。コンテキストメニューを開くと、「BindingExpressionパスエラー」が表示されます。
BindingExpression path error: '(dp:ElementDataContext.ElementName)' property not found on 'object' ''TextBlock' (Name='')'. BindingExpression:Path=PlacementTarget.(dp:ElementDataContext.ElementName); DataItem='ContextMenu' (Name='contextMenu'); target element is 'ContextMenu' (Name='contextMenu'); target property is 'Tag' (type 'Object')
バインディングパスが間違っていると思われます。私は試した
PlacementTarget.(dp:ElementDataContext.ElementName)
PlacementTarget.dp:ElementDataContext.ElementName
PlacementTarget.ElementDataContext.ElementName
何も機能しません。正しい構文は何ですか?これも可能ですか?