7

我的一个数据源生成一组值,这些值被输入到以下界面

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

我想在 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> 

我对 WPF 还是很陌生,所以我可能会在这里遗漏明显的东西。

4

1 回答 1

10

ContentPresenters 就是为此而生的。内容模板变为:

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

我用 aTextBlock和 a测试了它TextBox

于 2010-04-02T13:38:21.783 回答