使用数据绑定值作为FrameworkElement

Jar*_*Par 7 data-binding wpf binding frameworkelement

我的一个数据源生成一组值,这些值键入以下接口

public interface IData
{
    string Name { get; }
    FrameworkElement VisualElement { get; }
}
Run Code Online (Sandbox Code Playgroud)

我想在WPF中使用数据绑定来显示IData实例的集合,TabControl其中Name值成为选项卡的标题,VisualElement值显示为相应选项卡的内容.

绑定标题是直截了当的.我对如何定义一个允许我显示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> 
Run Code Online (Sandbox Code Playgroud)

我仍然是WPF的新手,所以我可能会错过这里显而易见的.

Tim*_*res 10

ContentPresenter是为此而做的.内容模板变为:

        <TabControl.ContentTemplate>
            <DataTemplate>
                <ContentPresenter Content="{Binding VisualElement}" />
            </DataTemplate>
        </TabControl.ContentTemplate>
Run Code Online (Sandbox Code Playgroud)

我用a TextBlock和a 测试了它TextBox.