1

У меня есть приложение в котором на данный момент есть 2 окна(окно регистрации-авторизации и главное окно), в окне авторизации-регистрации есть 3 страницы между которыми нужно свободно перемещаться(из 1 в 2, из 3 в 1 и т.д), навигация по страницам главного окна должна работать по такому же принципу. Как правильно и с помощь чего можно это реализовать.

Ошибки:

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

Denis
  • 43
  • 6
  • 2
    Забудьте про Page в MVVM проекте, оперируйте VM уровнем, этого достаточно для большинства задач! – EvgeniyZ Oct 02 '21 at 10:06
  • 2
  • 1
    @EvgeniyZ, спасибо! Буду разбираться. – Denis Oct 02 '21 at 10:38
  • 1
    @aepot, спасибо! – Denis Oct 02 '21 at 10:39
  • 1
    Самый лучший способ - использование Prism/ReactiveUI. Основная идея - разбивка окна на области. В каждую область можно как подгрузить любой UserControl, так и выгрузить. Плюс из коробки есть возможность навигации вперед/назад. – Lapish Oct 02 '21 at 14:28
  • 1
    @Denis Я не сижу на киберформе, по этой причине я не вижу изображений что там прикреплены, а текста ошибки я не увидел. Да и как-то не красиво отсылать на чужой ресурс, чтоб вам дали решение тут, не кажется? Ну ок, судя по коду вам пишет что-то по типу "не удалось найти namespace vm" (или что-то такое). Вот вам ваш код: vm:AuthorizationViewModel, что такое vm вы знаете? – EvgeniyZ Oct 02 '21 at 16:51
  • @EvgeniyZ, добавил изображения с ошибками к вопросу. Нет, что такое 'vm' не знаю – Denis Oct 02 '21 at 17:05
  • 1
    @Denis А что такое namespace (пространство имен) знаете? – EvgeniyZ Oct 02 '21 at 17:08
  • @EvgeniyZ, да знаю, но не совсем понимаю как в xaml работает. – Denis Oct 02 '21 at 17:12
  • 1
    @Denis ну раз знаете, то объяснить будет проще. vm - это пространство имен, из которого будет браться следующее после :, скажем так, vm:AuthorizationViewModel - аналогичен Frontend.ViewModel.AuthorizationViewModel (или где там у вас нужный .cs) в простом c#, только весь namespace, в XAML, выносится отдельно как строки xmlns:view="clr-namespace:Frontend.View.Controls.AuthorizationRegistration" в начале, где view - это некий "ключ", через который обращаетесь (view:...), а все после =, это сам namespace. Собственно ваша ошибка в том, что вы не определили vm. – EvgeniyZ Oct 02 '21 at 17:18
  • 1
    код или разметку лучше вставлять текстом, а не скринами. Проверьте, что написано у вас в строке namespace в коде. Оно должно совпадать с тем что вы пишете в xmlns строке. Так же попытайтесь собрать приложение, бывает так, что до сборки ошибка есть, а после сборки - нет. – aepot Oct 02 '21 at 17:19
  • 1
    @EvgeniyZ, добавил, дважды пересобрал и ошибки исчезли. Спасибо за объяснения и терпение. – Denis Oct 02 '21 at 17:35
  • 1
    @Denis Да не за что. Вам кстати выше про Prism писали, и судя по скринам и Frontend вы разбиваете все на мелкие составляющие. По этому советую хотяб мельком посмотреть этот подход. Но советую применять его после того, как поймете основу MVVM, привязок и самого c#. – EvgeniyZ Oct 02 '21 at 17:37

0 Answers0