 <p>With all the hints I found out that <code>DataGridTextColumn</code> is neither part of the visual tree nor of the logical tree. That should be the reason why <code>ElementName</code> and <code>RelativeSource</code> do not work. This answer regarding <code>DataGridTextColumn</code> explains that and gives a possible solution with <code>Source</code> and <code>x:Reference</code>: <a href="http://stackoverflow.com/questions/8847661/datagridtextcolumn-visibility-binding">DataGridTextColumn Visibility Binding</a></p> <p>The answer of @Anand Murali works but cannot be applied to <code>Visibility</code> - that was not part of the question because I minimalized that away. So I accept that one and will give more information in this one.</p> <p>Using <code>x:Reference</code> for <code>Visibility</code> it can turn out like:</p> <pre><code>&lt;DataGridTextColumn Binding="{Binding Data.OrderNumber}" Header="Order Number" Visibility="{Binding DataContext.ShowColumnOrderNumber, Source={x:Reference LayoutRoot}, Converter={StaticResource BooleanToVisibilityConverter}}" /&gt; </code></pre> <p>But: I my example I use a <code>ControlTemplate</code> and to have <code>x:Reference</code> to work this template must be within a <code>.Resources</code> XAML part in the same file and cannot be in an external <code>ResourceDictionary</code>. In the latter case the reference will not work because it cannot be resolved. (If someone knows a solution to that it would be welcome)</p>