用途
本技能是面向 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)。
限制
资料未提供本技能的安装方式、收费模式、支持平台或版本要求等信息,暂未提供。