简介(v1.2)
旧版文档,适用于 Crystal.Avalonia 1.2.x。升级到 v2.0。
Crystal.Avalonia 是面向 Avalonia 应用的轻量基础设施层:
- 模块 — 通过
IModule注册功能 - DI — Microsoft.Extensions.DependencyInjection
- View/ViewModel 绑定 — View-first 与 ViewModel-first
- AOT — 对裁剪友好
不是 MVVM 框架
请使用 CommunityToolkit.Mvvm、Prism、ReactiveUI 等作为 MVVM 原语。
绑定模式
View-first — ViewModelLocator.AutoWireViewModel="True":
<UserControl ViewModelLocator.AutoWireViewModel="True">
<TextBlock Text="{Binding Greeting}"/>
</UserControl>
ViewModel-first — 绑定 ViewModel;ViewLocator 从 DI 解析 View:
<ContentControl Content="{Binding MainViewModel}"/>
注册(v1.2)
AddMvvm* 将 View 与 ViewModel 均注册到 DI:
services.AddMvvmTransient<MainView, MainViewModel>();
services.AddMvvmHybrid<SettingsView, SettingsViewModel>(); // View=Transient, VM=Singleton
services.AddMvvmSingleton<AboutView, AboutViewModel>();
| 方法 | View | ViewModel |
|---|---|---|
AddMvvmTransient |
Transient | Transient |
AddMvvmHybrid |
Transient | Singleton |
AddMvvmSingleton |
Singleton | Singleton |