using WPFluent.Abstractions;
using WPFluent.Controls;
namespace WPFluent;
///
/// Represents a contract with a that contains .
/// Through defined service allows you to use the MVVM model in WPF UI
/// navigation.
///
public interface INavigationWindow
{
///
/// Triggers the command to close a window.
///
void CloseWindow();
///
/// Provides direct access to the control responsible for navigation.
///
/// Instance of the control.
INavigationView GetNavigation();
///
/// Lets you navigate to the selected page based on it's type. Should be used with .
///
/// of the page.
/// if the operation succeeds. otherwise.
bool Navigate(Type pageType);
///
/// Lets you attach the service that delivers page instances to .
///
/// Instance of the with attached service provider.
void SetPageService(INavigationViewPageProvider navigationViewPageProvider);
///
/// Lets you attach the service provider that delivers page instances to .
///
/// Instance of the .
void SetServiceProvider(IServiceProvider serviceProvider);
///
/// Triggers the command to open a window.
///
void ShowWindow();
}