Multi-Platform Package Manager for Stable Diffusion
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

43 lines
1.3 KiB

using System;
using System.Diagnostics.CodeAnalysis;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Media.Animation;
using StabilityMatrix.Avalonia.Models;
using StabilityMatrix.Avalonia.ViewModels.Base;
namespace StabilityMatrix.Avalonia.Services;
public interface INavigationService<[SuppressMessage("ReSharper", "UnusedTypeParameter")] T>
{
event EventHandler<TypedNavigationEventArgs>? TypedNavigation;
/// <summary>
/// Set the frame to use for navigation.
/// </summary>
void SetFrame(Frame frame);
/// <summary>
/// Navigate to the view of the given view model type.
/// </summary>
void NavigateTo<TViewModel>(NavigationTransitionInfo? transitionInfo = null, object? param = null)
where TViewModel : ViewModelBase;
/// <summary>
/// Navigate to the view of the given view model type.
/// </summary>
void NavigateTo(
Type viewModelType,
NavigationTransitionInfo? transitionInfo = null,
object? param = null
);
/// <summary>
/// Navigate to the view of the given view model.
/// </summary>
void NavigateTo(ViewModelBase viewModel, NavigationTransitionInfo? transitionInfo = null);
bool GoBack();
bool CanGoBack { get; }
object? CurrentPageDataContext { get; }
}