首页 > 解决方案 > Uno WinUI 3.0 模板:UWP 和 Droid 中的不同命名空间

问题描述

我在 Uno 平台上遇到了 WinUI 模板的问题。例如,当从 Microsoft.UI.Xaml.Data 命名空间(我猜应该是正确的)实现 INotifyPropertyChanged 接口时,该应用程序可以在 UWP 上运行,但不能为 Droid 目标构建。使用 System.ComponentModel 命名空间(对于 WinUI 来说应该是过时的)应用程序为 Droid 目标构建和运行,但它不适用于 UWP 目标(意味着通知不由 UI 处理)。

提供的解决方案模板中似乎存在关于不同目标的混淆。我使用这些说明来创建解决方案:Uno 平台的模板

此外,我在目标 UWP、Droid 和 Wasm 上也遇到了差异。例如,绑定到 ObservableCollection 的 ItemsControl.ItemsSource 在 Droid 和 Wasm 上有效(更新 UI),但在 UWP 上无效。从 AutoSuggestBox 触发的事件在 Droid 上与在 UWP 上不同,等等。

在过去 3 周内多次更新 nuget-packages 修复了一些最初的问题,但该解决方案似乎仍不完全稳定。实际上,从今天开始更新所有 nuget-packages 时,该应用程序将不再在 Droid 上运行,说明运行时缺少一个库。

任何想法如何解决这些问题并在 Droid、UWP 和 Wasm 上获得具有相同行为的稳定解决方案?

标签: uno-platform

解决方案


目前,对 Win3.0 的 UWP 没有很好的支持(例如INotifyPropertyChanged未正确映射),仅正确支持桌面模板。

如果您使用当前unoapp-winui模板(从 Uno 平台 3.5 开始),Windows 项目以 WinUI 3 桌面为目标。


推荐阅读