SuperAPI AI 工具集

maui-data-binding

数据与分析

查看项目

更新于 10-16 08:35

技能介绍

该技能用于指导 .NET MAUI 的 XAML 数据绑定与 MVVM 实践。主要能力包括:编译型绑定(通过 x:DataType 启用,据资料称比基于反射的绑定快 8–20 倍)、绑定模式选择、值转换器、多重绑定与相对绑定,以及编译警告处理与性能优化建议。

使用方式方面:仅在设置了 BindingContext 的位置放置 x:DataType,例如页面根节点与 DataTemplate(后者自成绑定作用域);不要在每个子元素上散布 x:DataType,用 x:DataType="{x:Null}" 为单条绑定退出编译绑定。仅在需要覆盖默认模式时才显式指定 Mode,多数属性已有合适默认值(如 Label.Text 默认 OneWay、Entry.Text 与 Switch.IsToggled 默认 TwoWay),静态数据可用 OneTime。可在 CI 中把 XC0022、XC0023、XC0024、XC0025 等警告设为错误,例如 <WarningsAsErrors>XC0022;XC0025</WarningsAsErrors>。.NET 9+ 支持无反射、AOT 安全的代码绑定,如 label.SetBinding(Label.TextProperty, static (PersonViewModel vm) => vm.FullName);,必要时可传 mode 与 converter。

限制与注意事项:NativeAOT 与裁剪场景下基于反射的绑定会失效,应优先使用编译绑定;PropertyChanged 会自动封送到 UI 线程,但后台线程直接修改 ObservableCollection(Add/Remove)仍可能崩溃,需用 MainThread.BeginInvokeOnMainThread;热点路径避免复杂转换器链,可在 ViewModel 中预先计算。具体收费、价格与授权信息暂未提供。