39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using FluentAvalonia.UI.Controls;
|
|
using System.Reflection;
|
|
|
|
namespace Toolkit.UI.Controls.Avalonia;
|
|
|
|
public class NavigationView :
|
|
FluentAvalonia.UI.Controls.NavigationView
|
|
{
|
|
public NavigationView()
|
|
{
|
|
ItemInvoked += OnItemInvoked;
|
|
}
|
|
|
|
protected override Type StyleKeyOverride =>
|
|
typeof(FluentAvalonia.UI.Controls.NavigationView);
|
|
|
|
private void ApplyNavigationFix()
|
|
{
|
|
if (typeof(FluentAvalonia.UI.Controls.NavigationView)
|
|
.GetField("_shouldRaiseItemInvokedAfterSelection",
|
|
BindingFlags.NonPublic | BindingFlags.Instance)
|
|
is FieldInfo shouldRaiseItemInvokedAfterSelectionFieldInfo)
|
|
{
|
|
if (shouldRaiseItemInvokedAfterSelectionFieldInfo.GetValue(this) is bool value)
|
|
{
|
|
if (value)
|
|
{
|
|
shouldRaiseItemInvokedAfterSelectionFieldInfo.SetValue(this, false);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
private void OnItemInvoked(object? sender,
|
|
NavigationViewItemInvokedEventArgs args)
|
|
{
|
|
ApplyNavigationFix();
|
|
}
|
|
} |