diff --git a/Toolkit.Avalonia/Toolkit.Avalonia.csproj b/Toolkit.Avalonia/Toolkit.Avalonia.csproj index a972a43..795e2a3 100644 --- a/Toolkit.Avalonia/Toolkit.Avalonia.csproj +++ b/Toolkit.Avalonia/Toolkit.Avalonia.csproj @@ -5,7 +5,7 @@ enable - + diff --git a/Toolkit.UI.Avalonia/NavigationViewItemExtension.cs b/Toolkit.UI.Avalonia/NavigationViewItemExtension.cs index 140a041..125b4f6 100644 --- a/Toolkit.UI.Avalonia/NavigationViewItemExtension.cs +++ b/Toolkit.UI.Avalonia/NavigationViewItemExtension.cs @@ -1,86 +1,10 @@ using Avalonia; -using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.LogicalTree; using Toolkit.UI.Controls.Avalonia; namespace Toolkit.UI.Avalonia; -public class ListBoxItemExtension -{ - public static readonly AttachedProperty IsItemClickEnabledProperty = - AvaloniaProperty.RegisterAttached("IsItemClickEnabled", - typeof(ListBoxItemExtension), false); - - public static readonly RoutedEvent ItemClickEvent = - RoutedEvent.Register("ItemClick", - RoutingStrategies.Bubble, typeof(ListBoxItemExtension)); - - static ListBoxItemExtension() - { - IsItemClickEnabledProperty.Changed.AddClassHandler(OnIsItemClickEnabledPropertyChanged); - } - - private static void OnIsItemClickEnabledPropertyChanged(ListBoxItem sender, - AvaloniaPropertyChangedEventArgs args) - { - bool TrySetupListBox() - { - if (sender.GetLogicalAncestors().OfType().FirstOrDefault() is ListBox listBox) - { - void OnItemInvoked(object? _, FluentAvalonia.UI.Controls.NavigationViewItemInvokedEventArgs args) - { - if (args.InvokedItemContainer == sender) - { - sender.RaiseEvent(new ItemInvokedEventArgs { RoutedEvent = ItemClickEvent }); - } - } - - void OnSelectionChanged(object? sender, SelectionChangedEventArgs args) - { - foreach (object item in args.AddedItems) - { - if (listBox.ContainerFromItem(item) == sender) - { - - } - } - } - - - listBox.SelectionChanged += OnSelectionChanged; - return true; - } - - return false; - } - - if (!TrySetupListBox()) - { - void OnAttachedToVisualTree(object? _, VisualTreeAttachmentEventArgs __) - { - sender.AttachedToVisualTree -= OnAttachedToVisualTree; - TrySetupListBox(); - } - - sender.AttachedToVisualTree += OnAttachedToVisualTree; - } - } - - public static bool GetIsItemClickEnabled(ListBoxItem element) => - element.GetValue(IsItemClickEnabledProperty); - - public static void SetIsItemClickEnabled(ListBoxItem element, bool value) => - element.SetValue(IsItemClickEnabledProperty, value); - - public static void AddItemClickHandler(ListBoxItem element, EventHandler handler) => - element.AddHandler(ItemClickEvent, handler); - - public static void RemoveItemClickHandler(ListBoxItem element, EventHandler handler) => - element.RemoveHandler(ItemClickEvent, handler); -} - - public class NavigationViewItemExtension { public static readonly AttachedProperty IsItemClickEnabledProperty = diff --git a/Toolkit.UI.Avalonia/Toolkit.UI.Avalonia.csproj b/Toolkit.UI.Avalonia/Toolkit.UI.Avalonia.csproj index 3519c81..7753f8f 100644 --- a/Toolkit.UI.Avalonia/Toolkit.UI.Avalonia.csproj +++ b/Toolkit.UI.Avalonia/Toolkit.UI.Avalonia.csproj @@ -5,7 +5,7 @@ enable - + diff --git a/Toolkit.UI.Controls.Avalonia/Toolkit.UI.Controls.Avalonia.csproj b/Toolkit.UI.Controls.Avalonia/Toolkit.UI.Controls.Avalonia.csproj index b0fb715..1363073 100644 --- a/Toolkit.UI.Controls.Avalonia/Toolkit.UI.Controls.Avalonia.csproj +++ b/Toolkit.UI.Controls.Avalonia/Toolkit.UI.Controls.Avalonia.csproj @@ -6,7 +6,7 @@ true - +