12345678910111213141516171819202122232425262728 |
- using Avalonia.Controls;
- using Avalonia.Controls.Templates;
- using AvaloniaApplicationPages.ViewModels;
- using System;
- namespace AvaloniaApplicationPages
- {
- public class ViewLocator : IDataTemplate
- {
- public Control Build(object data)
- {
- var name = data.GetType().FullName!.Replace("ViewModel", "View");
- var type = Type.GetType(name);
- if (type != null)
- {
- return (Control)Activator.CreateInstance(type)!;
- }
- return new TextBlock { Text = "Not Found: " + name };
- }
- public bool Match(object data)
- {
- return data is ViewModelBase;
- }
- }
- }
|