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;
}
}
}