Skip to content

Latest commit

 

History

History
127 lines (95 loc) · 5.41 KB

README.RUS.md

File metadata and controls

127 lines (95 loc) · 5.41 KB

MvvmNavigation

Build status Version Downloads CodeFactor GitHub contributors License Join the Gitter chat!

Go to english page

Данная библиотека позволяет настраивать поведение навигации вашего WPF приложения и реализовать навигацию на уровне слоя ViewModel. Библиотека полностью придерживается паттерна MVVM.

Содерание

Как использовать

  1. Установите NuGet пакет MvvmNavigation.Wpf

  2. Определите привала навигации:

     public partial class App : Application
     {
         protected override void OnStartup(StartupEventArgs e)
         {
             var window = new MainWindow();
    
             //1. Создайте менеджер навигации
             var navigationManager = new NavigationManager(window);
    
             //2. Определите правила навигации: зарегистрируйте ключ (строку) с соответствующими View и ViewModel для него
             navigationManager.Register<FirstView>("FirstKey", () => new FirstViewModel(navigationManager));
             navigationManager.Register<SecondView>("SecondKey", () => new SecondViewModel(navigationManager));
    
             //3. Отобразите стартовый UI
             navigationManager.Navigate("FirstKey");
    
             window.Show();
         }
     }
  3. Вызовите метод Navigate в вашей ViewModel, чтобы сменить UI

     public class FirstViewModel : ViewModelBase
     {
         private readonly INavigationManager _navigationManager;
    
         public FirstViewModel(INavigationManager navigationManager)
         {
             _navigationManager = navigationManager;
         }
    
         private void GoToSecondPage()
         {
             // Сменить интерфейс
             _navigationManager.Navigate("SecondKey");
         }
     }

    Пример доступен здесь

Как использовать с Unity

MvvmNavigation поддерживает Unity из коробки.

  1. Установите 2 NuGet пакета:
  1. Определите привала навигации через UnityContainer:

     public partial class App : Application
     {
         protected override void OnStartup(StartupEventArgs e)
         {
             //1. Создайте Window и UnityContainer
             var mainWindow = new MainWindow();
             var unityContainer = new UnityContainer();
    
             //2. Зарегистрируйте менеджер навигации
             unityContainer.RegisterNavigationManager(mainWindow);
    
             //3. Определите правила навигации
             unityContainer.RegisterNavigationRule<FirstViewModel, FirstView>("FirstKey");
             unityContainer.RegisterNavigationRule<SecondViewModel, SecondView>("SecondKey");
     	 
             //4. Отобразите стартовый UI
             var navigationManager = unityContainer.Resolve<INavigationManager>();
             navigationManager.Navigate("FirstKey");
    
             window.Show();
         }
     }
  2. Вызовите метод Navigate в вашей ViewModel, чтобы сменить UI

     public class FirstViewModel : ViewModelBase
     {
         private readonly INavigationManager _navigationManager;
    
         public FirstViewModel(INavigationManager navigationManager)
         {
             _navigationManager = navigationManager;
         }
    
         private void GoToSecondPage()
         {
             // Сменить интерфейс
             _navigationManager.Navigate("SecondKey");
         }
     }

Примеры

Все примеры доступны здесь.