7

私のデータ ソースの 1 つは、次のインターフェイスに入力される値のコレクションを生成します。

public interface IData
{
    string Name { get; }
    FrameworkElement VisualElement { get; }
}

WPF でデータ バインディングを使用して、値がタブのヘッダーになり、値が対応するタブのコンテンツとして表示される IDataインスタンスのコレクションを表示したいと思います。TabControlNameVisualElement

ヘッダーのバインドは簡単です。ただし、値を表示できるテンプレートを定義する方法に行き詰まっていVisualElementます。私はいくつかの解決策を試しましたが、ほとんど成功しませんでした。私の最善の試みは次のとおりです。

    <TabControl ItemsSource="{Binding}">
        <TabControl.ItemTemplate>
            <DataTemplate>
                <Label Content="{Binding Name}"/>
            </DataTemplate>
        </TabControl.ItemTemplate>
        <TabControl.ContentTemplate>
            <DataTemplate>
                How do I display VisualElement here?
            </DataTemplate>
        </TabControl.ContentTemplate>
    </TabControl> 

私はまだWPFに非常に慣れていないので、ここで明らかなことを見逃している可能性があります。

4

1 に答える 1

10

ContentPresenterはこのために作られました。コンテンツ テンプレートは次のようになります。

        <TabControl.ContentTemplate>
            <DataTemplate>
                <ContentPresenter Content="{Binding VisualElement}" />
            </DataTemplate>
        </TabControl.ContentTemplate>

TextBlockaと aでテストしましたTextBox

于 2010-04-02T13:38:21.783 に答える