2014-12-24 5 views
1

Я пытаюсь изменить DataGridColumnHeader, который зависит от значения Combobox, но он работает только с первым tabItem. Если я переупорядочу столбцы - это будет работать только для первого tabItem. Что мне делать? Мой XAML:Связывание работает только с первого раза TabItem

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="0.15*"></RowDefinition> 
     <RowDefinition></RowDefinition> 
    </Grid.RowDefinitions> 
    <ComboBox Margin="10" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}"/> 
    <TabControl Grid.Row="1"> 
     <TabItem Header="Second"> 
      <DataGrid AutoGenerateColumns="False"> 
       <DataGrid.Columns> 
        <DataGridTemplateColumn> 
         <DataGridTemplateColumn.Header> 
          <TextBlock Text="{Binding DataContext.SelectedItem, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" /> 
         </DataGridTemplateColumn.Header> 
        </DataGridTemplateColumn> 
       </DataGrid.Columns> 
      </DataGrid> 
     </TabItem> 
     <TabItem Header="First"> 
      <DataGrid AutoGenerateColumns="False"> 
       <DataGrid.Columns> 
        <DataGridTemplateColumn> 
         <DataGridTemplateColumn.Header> 
          <TextBlock Text="{Binding DataContext.SelectedItem, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" /> 
         </DataGridTemplateColumn.Header> 
        </DataGridTemplateColumn> 
       </DataGrid.Columns> 
      </DataGrid> 
     </TabItem> 
    </TabControl> 
</Grid> 

Пример кода here

ответ

0

Заголовок в основном используется, чтобы дать жестко закодированные значения.

использование HeaderTemplate:

<TabControl Grid.Row="1"> 
     <TabItem Header="Second"> 
      <DataGrid AutoGenerateColumns="False"> 
       <DataGrid.Columns> 
        <DataGridTemplateColumn> 
         <DataGridTemplateColumn.HeaderTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding DataContext.SelectedItem, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" /> 
          </DataTemplate> 
         </DataGridTemplateColumn.HeaderTemplate> 

        </DataGridTemplateColumn> 
       </DataGrid.Columns> 
      </DataGrid> 
     </TabItem> 
     <TabItem Header="First"> 
      <DataGrid AutoGenerateColumns="False"> 
       <DataGrid.Columns>            
        <DataGridTemplateColumn> 
         <DataGridTemplateColumn.HeaderTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding DataContext.SelectedItem, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" /> 
          </DataTemplate> 
         </DataGridTemplateColumn.HeaderTemplate>        
        </DataGridTemplateColumn> 
       </DataGrid.Columns> 
      </DataGrid> 
     </TabItem> 
    </TabControl> 
+0

Спасибо! В работах – v0v