gpt4 book ai didi

WPF 使用 DataTemplate 隐式选择模板,但在 'List' 之外

转载 作者:行者123 更新时间:2023-12-01 16:09:32 24 4
gpt4 key购买 nike

在我的项目中,我有 TreeView,它包含各种类型的对象树(所有对象都来自同一个父类(super class))。

在我的 TreeView 的右侧,我想要一个“面板”(目前我只有一个网格),它显示有关树中当前所选对象的信息。我想使用 DataTemplate,如 this page 上的第二个示例,根据子类类型调整我的“面板”的布局和内容;但是,我找不到合适的容器(因为我不想要列表控件 - 我想根据 TreeView 中的选择更改一个项目的显示)。

This question问同样的事情,但我认为答案不适合我,因为我希望模板根据类型动态变化。

即我希望是这样的:

<[A Suitable Container] Margin="189,39,12,12" DataContext="{Binding ElementName=treeView1, Path=SelectedItem}">
<DataTemplate DataType="{x:Type local:subclass1}">
<Grid>
<!-- subclass1 specific stuff -->
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type local:subclass2}">
<Grid>
<!-- subclass2 specific stuff -->
</Grid>
</DataTemplate>
</[A Suitable Container]>

最佳答案

使用ContentControl

<ContentControl Content="{Binding ElementName=treeView1, Path=SelectedItem}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type local:ViewModelA}">
<local:ViewA />
</DataTemplate>
<DataTemplate DataType="{x:Type local:ViewModelB}">
<local:ViewB />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>

关于WPF 使用 DataTemplate 隐式选择模板,但在 'List' 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7175916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com