Improve vault navifaiton

This commit is contained in:
TheXamlGuy
2024-05-05 17:41:38 +01:00
parent 287aa3131b
commit daf746aa86
6 changed files with 22 additions and 5 deletions
@@ -0,0 +1,46 @@
using Avalonia;
using Avalonia.Threading;
using Avalonia.Xaml.Interactivity;
using System.Collections;
using Toolkit.Foundation;
using Toolkit.UI.Controls.Avalonia;
namespace Toolkit.UI.Avalonia;
public class InvokeNavigationViewItemAction :
AvaloniaObject,
IAction
{
public object? Execute(object? sender, object? parameter)
{
if (sender is NavigationViewItem navigationViewItem)
{
Dispatcher.UIThread.Post(() =>
{
if (navigationViewItem.MenuItemsSource is IList collection)
{
if (collection is { Count: > 0 } && collection[0] is ISelectable selectable)
{
selectable.Selected = true;
}
}
}, DispatcherPriority.ContextIdle);
}
if (sender is NavigationView navigationView)
{
Dispatcher.UIThread.Post(() =>
{
if (navigationView.MenuItemsSource is IList collection)
{
if (collection is { Count: > 0 } && collection[0] is ISelectable selectable)
{
selectable.Selected = true;
}
}
}, DispatcherPriority.ContextIdle);
}
return true;
}
}