treeview - 在 UWP 应用中使用 TreeView 时如何处理命名空间冲突
问题描述
将“ItemContainerStyle”设置为 generic.xaml 中定义的“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:”?这似乎是个坏主意。我是否需要分别重新创建样式和行为?
解决方案
我尝试(最小构建 17763 和目标构建 17134)来消除版本问题,但似乎我都需要 17763。尽管如此,我没有设置 ItemsSource。我正在尝试文档中使用的技术:“docs.microsoft.com/en-us/windows/uwp/design/...”用于音乐库 TreeView 示例。我真实项目的最低版本是 16299。
所以,问题就很清楚了。TreeView控件是从 build 17134 引入的。如果您使用的是平台 API,则需要确保项目的目标版本为 17134 或更高版本。既然您说要设置 ItemsSource。ItemsSource
及其相关 API 需要 Windows 10 版本 1809 ( SDK 17763 ) 或更高版本,因此您需要使项目的目标版本为 17763。
然后,您可以直接使用 TreeView 控件,如下所示:
<TreeView></TreeView>
如果您使用的是Windows UI 库 API,则需要按照Windows UI 库入门 文档下载并安装 Windows UI 库。请注意:
重要提示:要使用 WinUI 2.1,您的项目的 Min 版本必须为 14393 或更高,Target 版本必须为 17763 或更高。
然后,如果要在 WinUI 库中使用 TreeView 控件,请在 XAML 页面中,在页面顶部添加引用
xmlns:controls="using:Microsoft.UI.Xaml.Controls"
在 XAML 页面上,您可以直接输入以下内容:
<controls:TreeView></controls:TreeView>
推荐阅读
- c - 使用互斥锁锁定对列表对象的所有访问
- python - 如何在python(生成器表达式)中将字符串转换为嵌套字典?
- apache-kafka - 从 Kafka Consumer 内部,如何获取消息头
- reactjs - 在下一个 JS 中使用动态路由时获取客户端的 cookie
- php - 为什么 php artisan serve 不断尝试重命名我的 .env 文件?
- antd - 有没有办法在 Ant Design Form 中触发 Form.Item 上的 ValuesChange 或 Change 事件
- c# - 对接口使用约束泛型
- firebase - Firebase 未正确初始化
- r - 变异以根据另一列中的值添加列?
- python-3.x - 试图踢具有特定角色的人,没有错误,但也没有发生任何事情。我要修复什么?