0

我有一个 TreeView 绑定到一种对象的可观察集合,但我想根据该对象中的值而不是主对象类型显示不同的 DataTemplate,因为它们是相同的类型。进一步澄清,我实际上想基于它包含的对象类型。

Ok, so, rather than doing this:
<HierarchicalDataTemplate DataType="{x:Type listItem:TreeNodeViewModel}" ItemsSource="{Binding     Children}"

I actually want to do this:

<HierarchicalDataTemplate DataType.EmbeddedItem="{x:Type listItem:MyEmbededObjectType}"ItemsSource="{Binding Children}"

I have searched all day and now asking the question.

您好,感谢您的回答,但我仍然有点不确定在这里做什么。另外,我刚刚发现了如何格式化问题,以便全部显示出来,并且更容易知道我想要做什么。我是 Wpf 的新手,但我是一名长期开发人员,因此我很快就掌握了一些东西,但有些奇怪的事情让我很困惑。如果 ObservableCollection 中的对象是不同的对象,我有一个 TreeView 显示不同的模板,但在这种情况下,问题是在这种情况下,ObservableCollection 中的对象都是相同类型,但这些对象中的每一个都有一个嵌入的对象不同的类型,这就是我试图让 XAML 将其视为检索模板的对象类型。所以,我在 ObservableCollection 中提供的对象是 TreeNodeViewModel。这个类有一个嵌入的对象类型对象,称为Item。它是我用来了解 TreeNode 与什么相关的绑定项。此属性称为 Item ,我想使用此属性来提升模板。提前致谢。

4

1 回答 1

0

将这两个对象放入 DataTemplate 中,并使用 IValueConverter 设置可见性。

<DataTemplate>
  <StackPanel>
    <Button x:Name="Object1ShowThis" Visibility={StaticResource cMakeValueConverter/>
    <Button x:Name="Object2ShowThis" Visibility={StaticResource cMakeValueConverter2/>
   </StackPanel>
<DataTemplate>
于 2012-12-11T16:11:43.163 回答