用途:该技能解决 AvaloniaUI 中集合视图的替代方案问题。资料明确指出 AvaloniaUI 不支持 WPF 的 CollectionViewSource,因此需要改用其他方式实现集合的筛选、排序或分组。
主要能力:提供两种替代做法。一是推荐使用 DataGridCollectionView(NuGet 包 Avalonia.Controls.DataGrid),在服务层创建视图并设置 Filter 谓词,同时提供 Add、Remove、Clear 等集合操作。二是使用 ReactiveUI(NuGet 包 ReactiveUI.Avalonia)配合 DynamicData,通过 SourceList 的 Connect() 链式调用 Filter、Sort、Bind 输出只读集合。
项目结构:模板文件夹包含一个 .NET 9 AvaloniaUI 示例项目,分为 Core(纯 C# 模型与接口)、ViewModels(不含 Avalonia 引用)、AvaloniaServices(Avalonia 服务层)和 App(Avalonia 应用,含 Views、App.axaml、Program.cs 等)四个子项目。
使用方式:按资料示例,DataGridCollectionView 方式在服务层 new DataGridCollectionView(Source) 并设置 view.Filter;ReactiveUI 方式在 ViewModel 中构造 SourceList,通过 Connect().Filter(...).Sort(...).Bind(out _members).Subscribe() 完成筛选排序绑定。
适用场景:在 AvaloniaUI 的 MVVM 项目中需要对集合进行筛选、排序或分组时。
限制:资料未提供分组的具体实现细节、完整安装命令、版本兼容性说明及性能注意事项,这些内容暂未提供。