Wrap FluentAvalonia controls within same named classes allowing us to declare the xmlns namespace in our assembly

This commit is contained in:
Daniel Clark
2022-12-10 15:52:58 +00:00
parent 3d9a7e4438
commit 4f243eba2e
94 changed files with 121 additions and 85 deletions
@@ -0,0 +1,37 @@
using Avalonia.Controls.Templates;
using Avalonia.Controls;
namespace Toolkit.Foundation.Avalonia
{
public class TemplateSelector : IDataTemplate, ITemplateSelector
{
private readonly Dictionary<object, IControl> dataTracking = new();
private readonly ITemplateFactory templateFactory;
public TemplateSelector(ITemplateFactory templateFactory)
{
this.templateFactory = templateFactory;
}
public IControl? Build(object? item)
{
if (item is not null)
{
if (dataTracking.TryGetValue(item, out IControl? control))
{
return control;
}
return (IControl?)templateFactory.Create(item);
}
return null;
}
public bool Match(object? data)
{
return true;
}
}
}