我正在使用DevExpress for WPF,遵循MVVM模式 . 在视图中,我有一个动态填充的tabcontrol和一个动态填充的devexpress gridcontrol . 我需要做的是更改gridcontrols列名称,该名称部分基于tabitem Headers . 例如,如果选项卡项 Headers 是“tabitem1HeaderName”,那么我希望网格列名称为“tabitem1HeaderName Grid Column 1” . 为了清楚起见,我将使用标签项 Headers 并将其用作列名 . 我玩了一个样本,它在已经创建的标签中执行此操作:

<StackPanel>
    <TabControl>
        <TabItem Header="2015-01" Name="Tab2">
           <TextBlock Text="{Binding SelectedItem.Header, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}, StringFormat='Number Format: {0}' }" />
        </TabItem>
        <TabItem Header="world" Name="Tab3">
            <TextBlock Text="{Binding SelectedItem.Header, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}, StringFormat='Number Format: {0}' }" />
        </TabItem>
    </TabControl>
</StackPanel>

我想知道如何在运行时填充的tabcontrol和网格中模仿此功能

<TabControl  Grid.Row="1" ItemsSource="{Binding Workspaces}" Height="Auto" Background="Transparent" x:Name="Tabs" >
                    <TabControl.ContentTemplate>
                        <DataTemplate>
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="725" />
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="1600" />
                                </Grid.ColumnDefinitions>


                                <dxg:GridControl Grid.Row="0" x:Name="Grid" ItemsSource="{Binding Data}" >
                                    <dxgcore:GridControl.Columns>
                                        <!--<dxg:GridColumn Name="Month1" FieldName="Month01" Header="01" Visible="True" AllowEditing="False" HorizontalHeaderContentAlignment="Center">-->
                                        <dxg:GridColumn Name="Month1" FieldName="Month01" Header="{Binding SelectedItem.Header, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Visible="True" AllowEditing="False" HorizontalHeaderContentAlignment="Center" >
                                            <dxg:GridColumn.EditSettings>
                                                <dxe:TextEditSettings HorizontalContentAlignment="Right" />
                                            </dxg:GridColumn.EditSettings>
                                        </dxg:GridColumn>

                                    </dxgcore:GridControl.Columns>
                                    <dxgcore:GridControl.View>
                                        <dxgcore:TableView x:Name="View" 
                                       AllowEditing="False" 
                                       AllowBestFit="True" 
                                       AllowMoving="True" 
                                       AllowColumnFiltering="True"
                                       IsColumnMenuEnabled="True"
                                       ShowGroupPanel="False"
                                       ShowAutoFilterRow="True"
                                       AutoWidth="False" 
                                       NavigationStyle="Cell"
                                       VerticalScrollbarVisibility="Visible"
                                       HorizontalScrollbarVisibility="Visible"

                                        </dxgcore:TableView>
                                    </dxgcore:GridControl.View>
                                </dxg:GridControl>

                            </Grid>
                        </DataTemplate>
                    </TabControl.ContentTemplate>
                </TabControl>