feat: support dynamic form group generation, add demo.
This commit is contained in:
24
demo/Ursa.Demo/DataTemplates/FormDataTemplateSelector.cs
Normal file
24
demo/Ursa.Demo/DataTemplates/FormDataTemplateSelector.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Templates;
|
||||
using Ursa.Demo.ViewModels;
|
||||
|
||||
namespace Ursa.Demo.Converters;
|
||||
|
||||
public class FormDataTemplateSelector: ResourceDictionary, IDataTemplate
|
||||
{
|
||||
public Control? Build(object? param)
|
||||
{
|
||||
if (param is null) return null;
|
||||
var type = param.GetType();
|
||||
if (this.TryGetResource(type, null, out var template) && template is IDataTemplate dataTemplate)
|
||||
{
|
||||
return dataTemplate.Build(param);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool Match(object? data)
|
||||
{
|
||||
return data is IFromItemViewModel;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user