Files
Toolkit2/Toolkit.UI.Avalonia/AttachedEventTriggerBehaviour.cs
T
TheXamlGuy 287aa3131b WIP
2024-05-05 09:42:21 +01:00

35 lines
924 B
C#

using Avalonia;
using Avalonia.Interactivity;
using Avalonia.Xaml.Interactivity;
namespace Toolkit.UI.Avalonia;
public class AttachedEventTriggerBehaviour : Trigger
{
public static readonly StyledProperty<RoutedEvent> RoutedEventProperty =
AvaloniaProperty.Register<AttachedEventTriggerBehaviour, RoutedEvent>(nameof(RoutedEvent));
public RoutedEvent RoutedEvent
{
get => GetValue(RoutedEventProperty);
set => SetValue(RoutedEventProperty, value);
}
protected override void OnAttached()
{
if (RoutedEvent is not null)
{
if (AssociatedObject is Interactive interactive)
{
interactive.AddHandler(RoutedEvent, (object sender, RoutedEventArgs args) => {
Interaction.ExecuteActions(AssociatedObject, Actions, null);
});
}
}
base.OnAttached();
}
}