SuperAPI AI 工具集

avalonia-data-binding

编程与开发

查看项目

更新于 10-15 09:49

技能介绍

用途

本技能是面向 AI 智能体的 Avalonia 数据绑定模式综合指南,用于指导在 Avalonia 中实现 ViewModel 与视图之间的数据绑定。当需要为 Avalonia 视图创建新的 ViewModel、实现可通知 UI 变化的可观察属性、添加处理用户交互(如按钮点击)的命令,或使用 DataTemplate 与 ContentControl 设置导航模式时,可使用本技能。

主要能力

ViewModel 与命令

  • 指导使用 ObservableObject 基类实现 ViewModel。
  • 展示如何使用 [ObservableProperty] 特性创建可观察属性。
  • 演示 [RelayCommand] 命令模式,包括异步与 CanExecute。
  • 说明使用 DataTemplate 进行 View-ViewModel 映射(对导航至关重要)。
  • 展示用于向 ViewModel 传递服务的依赖注入模式。

绑定模式

  • OneWay:ViewModel 属性更新 UI。
  • TwoWay:UI 与 ViewModel 保持同步。
  • OneTime:设置一次,不再更新。
  • OneWayToSource:目标更新源,反之则不然。

绑定路径

支持简单属性、嵌套属性、集合索引器、附加属性以及当前项(/、/Name)绑定。

绑定源

包括 DataContext(默认)、元素绑定(#VolumeSlider.Value 或 ElementName)、RelativeSource 的 Parent 与 Self、StaticResource、DynamicResource 以及静态属性(x:Static)。

值转换器

  • 内置转换器:BoolConverters(Not、And、Or)、ObjectConverters(IsNull、IsNotNull、Equal)。
  • 自定义转换器:实现 IValueConverter,在资源中注册后使用,并支持 ConverterParameter。

字符串格式化

支持数字格式化(货币、定点、千分位、百分比、十六进制)、日期/时间格式化,以及使用 {} 转义大括号。

编译绑定

  • 优势:性能比反射绑定快 2-3 倍、类型安全、更好的 IntelliSense 支持。
  • 启用方式:项目文件中设置 <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>,并在 AXAML 中设置 x:DataType。
  • 语法:{Binding}、{CompiledBinding}、{ReflectionBinding}。
  • 支持集合的 DataType 与 DataType 继承。

常见模式

绑定到命令、集合(ItemsControl、ListBox、DataGrid)、枚举(ComboBox)、条件可见性、多绑定(计算属性或 MultiBinding 转换器)、FallbackValue 与 TargetNullValue。

使用方式

本技能以指南形式提供代码示例与说明,供 AI 智能体在生成或审查 Avalonia 数据绑定代码时参考。示例涵盖 AXAML 标记与 C# ViewModel 代码,包括绑定语法、转换器定义、编译绑定配置等。

适用场景

  • 为 Avalonia 视图创建新的 ViewModel。
  • 实现可通知 UI 变化的可观察属性。
  • 添加处理用户交互(按钮点击等)的命令。
  • 使用 DataTemplate 与 ContentControl 设置导航模式。
  • 需要优化绑定性能(编译绑定、OneTime)。

限制

资料未提供本技能的安装方式、收费模式、支持平台或版本要求等信息,暂未提供。