【发布时间】:2018-11-04 02:28:57
【问题描述】:
这个问题的WPF版本是here:但是还没有回答,不知道UWP TreeView会不会有同样的答案。
我正在尝试将 DataTemplateSelector 添加到刚刚添加到 Windows 10 版本 1803 的新 UWP TreeViews 但它不起作用。它记录了here 如何使用 XAML TreeView 控件,甚至显示了如何修改模板以更改工作正常的项目数据模板。我需要使用数据模板选择器,因为我的每个节点都使用不同的对象,并且我需要它们以不同的方式显示。 TreeView.Node.Content 设置得很好,一切正常,除了它将 null 传递给 Object 参数中的 datatemplateselector。
这是我的代码:(与 Microsoft 的示例相同,只是使用 ItemTemplateSelector)
<Style TargetType="TreeView">
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeView">
<TreeViewList x:Name="ListControl"
ItemTemplateSelector="{StaticResource CardSelector}"
ItemContainerStyle="{StaticResource TreeViewItemStyle}"
CanDragItems="True"
AllowDrop="True"
CanReorderItems="True">
<TreeViewList.ItemContainerTransitions>
<TransitionCollection>
<ContentThemeTransition />
<ReorderThemeTransition />
<EntranceThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</TreeViewList.ItemContainerTransitions>
</TreeViewList>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
有没有人对此有任何见解或经验?我的数据模板选择器“CardSelector”工作正常,我已经在几个地方使用它没有任何问题。
【问题讨论】:
-
您能提供一个minimal reproducible example吗?然后,我可以帮助您诊断我这边的这个问题。
-
查看我在原始问题中发布的链接,那里有来自 Microsoft 的完整示例。正如我在问题中所说的,我唯一改变的是使用 DataTemplateSelector 而不是单个 Datatemplate。根据他们的示例,看看您是否可以使用数据模板选择器。更改模板的具体示例在页面底部。
-
这个链接好像坏了,打不开。
-
我想看看
CardSelector类和两个DataTemplates。
标签: c# xaml uwp treeview datatemplateselector