using Avalonia.Controls; using Avalonia.Input; using Avalonia.Interactivity; using Avalonia.Xaml.Interactivity; namespace Avalonia.Xaml.Interactions.Custom; /// /// Toggles property of the associated control on event. /// public class ToggleIsExpandedOnDoubleTappedBehavior : StyledElementBehavior { /// protected override void OnAttachedToVisualTree() { if (AssociatedObject is not null) { AssociatedObject.DoubleTapped += DoubleTapped; } } /// protected override void OnDetachedFromVisualTree() { if (AssociatedObject is not null) { AssociatedObject.DoubleTapped -= DoubleTapped; } } private void DoubleTapped(object? sender, RoutedEventArgs args) { if (AssociatedObject is {Parent: TreeViewItem item}) { item.IsExpanded = !item.IsExpanded; } } }