| Name | Message | Date |
|---|---|---|
| 📁 ViewModels | 2 days ago | |
| 📁 Views | 2 days ago | |
| 📄 App.axaml | 2 days ago | |
| 📄 App.axaml.cs | 2 days ago | |
| 📄 App.csproj | 2 days ago | |
| 📄 packages.lock.json | 2 days ago | |
| 📄 Program.cs | 2 days ago | |
| 📄 ViewLocator.cs | 2 days ago |
📄
src/App/ViewLocator.cs
using System; using Avalonia.Controls; using Avalonia.Controls.Templates; using Microsoft.Extensions.DependencyInjection; using MMirror.App.ViewModels; using MMirror.App.Views; namespace MMirror.App; /// <summary> /// Given a view model, returns the corresponding view if possible. /// </summary> public class ViewLocator(IServiceProvider services) : IDataTemplate { public Control Build(object? data) => data switch { MainViewModel => services.GetRequiredService<MainView>(), _ => new TextBlock { Text = $"No view for {data?.GetType().Name}" }, }; public bool Match(object? data) => data is ViewModelBase; }