seb*_*ebf 1 wpf binding datatemplate wpf-controls
在我的项目中,我有TreeView,其中包含一棵各种类型的对象的树(所有对象均来自同一父类)。
在我的TreeView的右侧,我希望有一个“面板”(目前只有一个网格),该面板显示有关树中当前所选对象的信息。我想使用DataTemplate,如本页第二个示例中所示,根据子类类型调整“面板”的布局和内容。但是,我找不到合适的容器(因为我不想使用列表控件-我想根据树视图中的选择更改一项的显示)。
这个问题问的是同一件事,但我认为答案不适合我,因为我希望模板根据类型动态更改。
即我希望有这样的东西:
<[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]>
Run Code Online (Sandbox Code Playgroud)
用一个 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>
Run Code Online (Sandbox Code Playgroud)