title: Binding to DataContext outside current ItemsSource context
body: <p>I have a <code>DataSet</code> bound to the <code>Window.DataContext</code>; I also have a <code>DataGrid</code>:</p>
  
  <pre><code>&lt;DataGrid ItemsSource={Binding Tables[Items]}&gt;
      &lt;DataGrid.Columns&gt;
          &lt;DataGridTextBoxColumn Header={Binding Path=DataContext.Tables[Names]/Test, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}} /&gt;
      &lt;/DataGrid.Columns&gt;
  &lt;/DataGrid&gt;
  </code></pre>
  
  <p>Basically, I'm trying to bind the Header of that column to DataTable "Names", Column "Test", first row.</p>
  
  <p>However, I can't get it right.  Note that I can bind it fine outside the DataGrid.  The Grid's ItemsSource changes the data context and I don't know how to refer outside to the original DataContext.</p>
  
  <p>It seems that the binding succeeds; but the problem is that the current item (first row) of the Tables[Names] in the Window.DataContext got lost.</p>
  
  <p>If I make the DataSet static and access it via {x:Static local:dataset} then things work fine.  But I can't use static datasets because there will be multiple instances (multi-user).</p>
  
  <p>Can anyone please point me in the right direction?</p>