简介(2.0.1)
Crystal.Avalonia 是面向 Avalonia 应用的轻量基础设施层:
- 模块 — 通过
IModule注册功能 - DI — Microsoft.Extensions.DependencyInjection
- View/ViewModel 绑定 — View-first 与 ViewModel-first
- AOT — 对裁剪友好
不是 MVVM 框架
不提供 ViewModel 基类、命令或绑定 —— 请使用 CommunityToolkit.Mvvm、Prism、ReactiveUI 等。
绑定模式
View-first — XAML 设置 ViewModelLocator.AutoWireViewModel="True",ViewModel 从 DI 解析:
<UserControl ViewModelLocator.AutoWireViewModel="True">
<TextBlock Text="{Binding Greeting}"/>
</UserControl>
ViewModel-first — 将 ViewModel 绑定到 ContentControl,由 ViewLocator 创建 View:
<ContentControl Content="{Binding MainViewModel}"/>
注册
services.AddMvvmTransient<MainView, MainViewModel>(); // ViewModel → DI,View → 仅映射
// Shell: CreateShell<MainWindow, MainView>() — 不进 DI
| 组件 | 作用 |
|---|---|
CrystalApplication |
带模块/DI 启动的应用基类 |
CreateShell<TWindow, TView>() |
用 new 创建 Shell;ViewModel 由 ViewModelLocator 注入 |
AddMvvmTransient / AddMvvmSingleton |
ViewModel 生命周期 + View 映射 |
ViewModelLocator |
View-first 的 DataContext 注入 |
ViewLocator |
ViewModel-first 的 View 创建 |