 <p>You are close. </p> <p>What you are doing:</p> <ol> <li>you set the <code>Tag</code> of <code>TreeView</code> to its own <code>DataContext</code>. This is unnecessary.</li> <li>you try to get <code>Tag.MyText</code> from your <code>ContextMenu.PlacementTarget</code> - which is <code>TextBlock</code>. The <code>TextBlock</code> has no <code>Tag</code> set.</li> </ol> <p>What you should do:</p> <ol> <li>set the <code>Tag</code> of the <strong>TextBlock</strong> to <code>DataContext</code> of the Window (Window is <code>TextBlock</code> ancestor and you should look it up via <code>RelativeSource Mode=FindAncestor</code>).</li> <li>the second part is OK - you have <code>TextBlock.Tag</code> set in the first step.</li> </ol>