2

動的に入力された で正しいDataContextforにアクセスするのに問題があります。TabItemsTabControl

以下のコードを使用して、 my のをItemsSourcemy のTabControlにバインドします。ObservableCollection<TabViewModel>MainViewModel

のそれぞれのTypeプロパティに基づいて、異なるが のプロパティとして選択されます。これがうまくいかないのはここからですTabViewModelItemSourceUserControlContentTabItem

これらは に設定するUserControls必要がありますが、ダイナミックが別のビジュアル ツリーで作成されているように見えるため、これにアクセスすることはできません。DataContextMainViewModelTabItems

<TabControl x:Name="mainTabControl" ItemsSource="{Binding TabList}">
    <TabControl.ItemContainerStyle>
        <Style TargetType="TabItem">
            <Setter Property="Header" Value="{Binding Name}" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Type}" Value="Summary" >
                    <Setter Property="Content">
                        <Setter.Value>
                            <views:AnalysisArisingSummaryControl />
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=Type}" Value="User Defined" >
                    <Setter Property="Content">
                        <Setter.Value>
                            <views:AnalysisUserDefinedControl />
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=Type}" Value="System Defined" >
                    <Setter Property="Content">
                        <Setter.Value>
                            <views:AnalysisSystemDefinedControl />
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TabControl.ItemContainerStyle>           
</TabControl>

これを達成する方法についてのアイデア。ViewModels私がそれを助けることができるなら、私は本当にデータを参照する必要はありません。

4

1 に答える 1