Improved NavigationViewExtension
This commit is contained in:
@@ -8,16 +8,11 @@ public class NamedTypeConverter :
|
||||
MarkupExtension,
|
||||
IValueConverter
|
||||
{
|
||||
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||
{
|
||||
var d = value is not null ? value.GetType().Name : (object?)null;
|
||||
return d;
|
||||
}
|
||||
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) =>
|
||||
value is not null ? value.GetType().Name : (object?)null;
|
||||
|
||||
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||
{
|
||||
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) =>
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override object ProvideValue(IServiceProvider serviceProvider) => this;
|
||||
}
|
||||
@@ -27,15 +27,14 @@ public class NavigationViewExtension
|
||||
{
|
||||
if (sender.GetLogicalAncestors().OfType<NavigationView>().FirstOrDefault() is NavigationView navigationView)
|
||||
{
|
||||
void OnItemInvoked(object? _, FluentAvalonia.UI.Controls.NavigationViewItemInvokedEventArgs args)
|
||||
sender.GetObservable(NavigationViewItem.IsSelectedProperty).Subscribe(args =>
|
||||
{
|
||||
if (args.InvokedItemContainer == sender)
|
||||
if (args)
|
||||
{
|
||||
sender.RaiseEvent(new ItemInvokedEventArgs { RoutedEvent = ItemInvokedEvent });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
navigationView.ItemInvoked += OnItemInvoked;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -44,13 +43,12 @@ public class NavigationViewExtension
|
||||
|
||||
if (!TrySetupNavigationView())
|
||||
{
|
||||
void OnAttachedToVisualTree(object? _, VisualTreeAttachmentEventArgs __)
|
||||
void HandleLoaded(object? _, RoutedEventArgs __)
|
||||
{
|
||||
sender.AttachedToVisualTree -= OnAttachedToVisualTree;
|
||||
TrySetupNavigationView();
|
||||
}
|
||||
|
||||
sender.AttachedToVisualTree += OnAttachedToVisualTree;
|
||||
sender.Loaded += HandleLoaded;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user