From fe46c308ef3eb1be3c39eca680e9b01b6b749336 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Mon, 1 Feb 2021 01:05:42 -0500 Subject: Added project files --- ViewLocator.cs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 ViewLocator.cs (limited to 'ViewLocator.cs') diff --git a/ViewLocator.cs b/ViewLocator.cs new file mode 100644 index 0000000..ded617c --- /dev/null +++ b/ViewLocator.cs @@ -0,0 +1,32 @@ +using System; +using Avalonia.Controls; +using Avalonia.Controls.Templates; +using Alee_Audio_Player.ViewModels; + +namespace Alee_Audio_Player +{ + public class ViewLocator : IDataTemplate + { + public bool SupportsRecycling => false; + + 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)!; + } + else + { + return new TextBlock { Text = "Not Found: " + name }; + } + } + + public bool Match(object data) + { + return data is ViewModelBase; + } + } +} \ No newline at end of file -- cgit v1.2.3