27 lines
630 B
C#
27 lines
630 B
C#
using Avalonia.Controls;
|
|
using Avalonia.Controls.Templates;
|
|
using Ursa.Demo.ViewModels;
|
|
|
|
namespace Ursa.Demo.Converters;
|
|
|
|
public class MenuDataTemplateSelector: IDataTemplate
|
|
{
|
|
public IDataTemplate? MenuTemplate { get; set; }
|
|
public IDataTemplate? SeparatorTemplate { get; set; }
|
|
|
|
public Control? Build(object? param)
|
|
{
|
|
if (param is NavigationMenuItemViewModel vm)
|
|
{
|
|
if (vm.IsSeparator) return SeparatorTemplate?.Build(vm);
|
|
else return MenuTemplate?.Build(vm);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public bool Match(object? data)
|
|
{
|
|
return true;
|
|
}
|
|
} |