Files
TheXamlGuy/Framework/Avalonia/Routing/FrameRouteHandler.cs
T
2022-11-01 15:26:08 +00:00

27 lines
766 B
C#

using Avalonia.Controls.Primitives;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Navigation;
namespace TheXamlGuy.Framework.Avalonia;
public class FrameRouteHandler : RouteHandler<Frame>
{
public override void Handle(Route<Frame> request)
{
if (request.Template is Type type)
{
void HandleNavigated(object sender, NavigationEventArgs args)
{
request.Target.Navigated -= HandleNavigated;
if (request.Target.Content is TemplatedControl control)
{
control.DataContext = request.Data;
}
}
request.Target.Navigated += HandleNavigated;
request.Target.Navigate(type);
}
}
}