TProPCMonitor/LoraGamepad/ViewLocator.cs

29 lines
693 B
C#
Raw Normal View History

2022-11-06 14:14:53 +08:00
using System;
using System.ComponentModel;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using LoraGamepad.ViewModels;
namespace LoraGamepad
{
public class ViewLocator : IDataTemplate
{
public IControl 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;
}
}
}