feat: refactor OverlayDialog and add options.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Primitives;
|
||||
using Avalonia.Controls.Templates;
|
||||
using Avalonia.Input;
|
||||
using Avalonia.Layout;
|
||||
using Avalonia.Media;
|
||||
@@ -220,4 +221,17 @@ public class OverlayDialogHost : Canvas
|
||||
Canvas.SetLeft(control, left);
|
||||
Canvas.SetTop(control, top);
|
||||
}
|
||||
|
||||
internal IDataTemplate? GetDataTemplate(object? o)
|
||||
{
|
||||
if (o is null) return null;
|
||||
IDataTemplate? result = null;
|
||||
var templates = this.DataTemplates.ToList();
|
||||
result = templates.FirstOrDefault(a => a.Match(o));
|
||||
if (result != null) return result;
|
||||
var resources = this.Resources.Where(a => a.Value is IDataTemplate).Select(a => a.Value)
|
||||
.OfType<IDataTemplate>();
|
||||
result = resources.FirstOrDefault(a => a.Match(o));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user