在值为FrameworkElement的数据绑定中使用数据绑定

7
我的一个数据源生成了一组值,这些值按照以下接口进行了类型定义。
public interface IData
{
    string Name { get; }
    FrameworkElement VisualElement { get; }
}

我希望在WPF中使用数据绑定来显示一个IData实例的集合,其中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> 

我对WPF还非常陌生,所以可能会忽略一些显而易见的问题。

1个回答

10

ContentPresenter就是为此而生的。内容模板如下:

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

我使用了TextBlockTextBox进行了测试。


干得漂亮!谢谢! - JaredPar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接