在UWP应用中使用TreeView时如何处理命名空间冲突

时间:2019-04-25 21:03:40

标签: treeview uwp-xaml

在将generic.xaml中定义的“ ItemContainerStyle”设置为“ StaticResource TreeViewItemStyle”时,引发异常。该消息指示样式正在使用“ Windows.UI.Xaml.Controls.TreeViewItem”,而不是“ Microsoft.UI.Xaml.Controls.TreeViewItem”。

我删除了ItemContainerStyle分配,以确认这是导致异常的行。

<ControlTemplate TargetType="muxcontrols:TreeView">
                        <muxcontrols:TreeViewList x:Name="ListControl"
                                      ItemTemplate="{StaticResource TreeViewItemDataTemplate}"
                                      ItemContainerStyle="{StaticResource TreeViewItemStyle}">

问题似乎很明显,但是正确的解决方案使我回避。为了利用样式,我是否要在generic.xaml文件中开始添加“ muxcontrols:”?这似乎是个坏主意。我需要分别重新创建样式和行为吗?

1 个答案:

答案 0 :(得分:0)

  

我尝试(最低版本17763和目标版本17134)消除了版本问题,但似乎我都需要17763。即使我没有设置ItemsSource。我正在尝试音乐库TreeView示例中的docs:“docs.microsoft.com/en-us/windows/uwp/design/…”中使用的技术。我实际项目的最低版本是16299。

因此,问题很明显。 TreeView控件是从内部版本17134引入的。如果您使用的是平台API,则需要确保项目的目标版本为17134或更高版本。既然您说过要设置ItemsSource。 ItemsSource及其相关API需要Windows 10版本1809(SDK 17763)或更高版本,因此您需要将项目的目标版本设置为17763。

然后,您可以像下面这样直接使用TreeView控件:

<TreeView></TreeView>

如果您使用的是Windows UI Library APIs,则需要遵循Getting started with the Windows UI Library 文档来下载和安装Windows UI库。请注意:

  

重要提示:要使用WinUI 2.1,项目的Min版本必须为14393或更高,Target版本必须为17763或更高。

然后,如果要在WinUI库中使用TreeView控件,请在XAML页面的顶部添加引用。

xmlns:controls="using:Microsoft.UI.Xaml.Controls"

在XAML页面上,您可以直接输入以下内容:

<controls:TreeView></controls:TreeView>