Table of Contents

Getting Started

Prerequisites

Install & Run

dotnet new install CrystalTemplate
dotnet new CT -o MyApp
cd MyApp
dotnet run

App.axaml.cs

public partial class App : CrystalApplication
{
    public override void Initialize() => AvaloniaXamlLoader.Load(this);

    public override void RegisterModules(IModuleRegistrar moduleRegistrar)
    {
        moduleRegistrar.RegisterModule<DemoModule>(); // optional feature modules
    }

    public override void RegisterServices(IServiceCollection services)
    {
        services.AddMvvmTransient<MainView, MainViewModel>(); // ViewModel → DI, View → mapping
    }

    public override void CreateShell(IServiceProvider sp)
    {
        CreateShell<MainWindow, MainView>(); // Shell → new (not from DI)
    }
}

View (View-First)

<UserControl ViewModelLocator.AutoWireViewModel="True">
    <TextBlock Text="{Binding Greeting}"/>
</UserControl>

ViewModel-First

<ContentControl Content="{Binding MainViewModel}"/>

Next Steps