diff --git a/Toolkit.UI.Avalonia/InvokeNavigationViewItemAction.cs b/Toolkit.UI.Avalonia/InvokeNavigationViewItemAction.cs index 7701f65..336c802 100644 --- a/Toolkit.UI.Avalonia/InvokeNavigationViewItemAction.cs +++ b/Toolkit.UI.Avalonia/InvokeNavigationViewItemAction.cs @@ -10,6 +10,15 @@ public class InvokeNavigationViewItemAction : AvaloniaObject, IAction { + public static readonly StyledProperty SelectedIndexProperty = + AvaloniaProperty.Register(nameof(SelectedIndex), 0); + + public int SelectedIndex + { + get => GetValue(SelectedIndexProperty); + set => SetValue(SelectedIndexProperty, value); + } + public object? Execute(object? sender, object? parameter) { if (sender is NavigationViewItem navigationViewItem) @@ -20,7 +29,7 @@ public class InvokeNavigationViewItemAction : { if (collection is { Count: > 0 }) { - navigationViewItem.SetValue(NavigationView.SelectedItemProperty, collection[0]); + navigationViewItem.SetValue(NavigationView.SelectedItemProperty, collection[SelectedIndex]); } } }, DispatcherPriority.ContextIdle); @@ -34,7 +43,7 @@ public class InvokeNavigationViewItemAction : { if (collection is { Count: > 0 }) { - navigationView.SetValue(NavigationView.SelectedItemProperty, collection[0]); + navigationView.SetValue(NavigationView.SelectedItemProperty, collection[SelectedIndex]); } } }, DispatcherPriority.ContextIdle);