2012-09-23 42 views
1

無法獲取DataGridTextColumn.Header中的ComboBox進行綁定。
第一個單獨的ComboBox結合很好。
Fields只是Public List<String>如何綁定DataGrid標頭

<StackPanel Orientation="Vertical"> 
    <ComboBox ItemsSource="{Binding Path=Fields}"/> 
    <DataGrid ItemsSource="{Binding Path=MyRows}" AutoGenerateColumns="False" > 
     <DataGrid.Columns> 
      <DataGridTextColumn Width="80" Binding="{Binding Col1}"> 
       <DataGridTextColumn.Header> 
        <StackPanel> 
         <TextBlock Text="Header1" /> 
         <ComboBox Width="60" ItemsSource="{Binding Path=Fields}" /> 
        </StackPanel> 
       </DataGridTextColumn.Header> 
      </DataGridTextColumn> 
     </DataGrid.Columns> 
    </DataGrid> 
</StackPanel> 
private List<string> fields = new List<string> { "aa", "bb", "cc" }; 
public List<string> Fields { get { return fields; } } 

甚至試圖使MyRow

的字段屬性
+0

@ H.B。數據在那裏。 – Paparazzi

+0

我錯了,顯然DataContext沒有按預期繼承。 Peter Hansen的解決方法是要走的路。 –

回答

2

如果您使用的DataContext DataGrid上,已經從窗口繼承它應該工作。

<ComboBox Width="60" 
      ItemsSource="{Binding Path=DataContext.Fields, 
      RelativeSource={RelativeSource AncestorType=DataGrid}}" /> 
+0

我曾經接近一次。在ItemsSource中沒有RealtiveSource。謝謝 – Paparazzi