C# WPF MVVM MultiPages | Многостраничность

Поделиться
HTML-код
  • Опубликовано: 28 окт 2024

Комментарии • 85

  • @konstantinewhite614
    @konstantinewhite614 5 лет назад +37

    Сумбурно и не внятное повествование, часть кода вообще не показана...

    • @mnocard
      @mnocard 4 года назад +1

      Правильно? Правильно!

  • @Hattler1
    @Hattler1 4 года назад +7

    Разве в MVVM можно смешивать View и ViewModel? По-моему иметь свойства типа Page во ViewModel, или вызывать открытие нового окна из команды ViewModel это нарушение паттерна, или всё-таки так можно?

  • @andrecosta1905
    @andrecosta1905 6 лет назад +10

    дайте вам источник git, это будет очень полезно.

  • @ПашаПрийма
    @ПашаПрийма 2 года назад +2

    самого важного не показал. в свойстве CurrentPage в set пропишите: OnPropertyChanged(nameof(CurrentPage));

    • @lightp7417
      @lightp7417 7 месяцев назад

      Ну это по идее должно быть и так ясно)

  • @ПавелМорозов-п1и
    @ПавелМорозов-п1и 7 лет назад +3

    Будут еще видео по WPF MVVM ? Интересно посмотреть на навигацию между страницами, когда нужно передавать какие-данные между ними и случай, когда для основного окна и дочерних страниц используется одна viewmodel. Как в таком случае передавать viewmodel в дочерние элементы ?

    • @BashkaMen
      @BashkaMen  7 лет назад +3

      да, вот все собираюсь записать уроки по впф, запишу многостраничность, а потом открою курс по основам от 0 до midle wpf

  • @acidbag9016
    @acidbag9016 27 дней назад

    Ребят, это не MVVM. SingletonSean Switching Views - WPF MVVM NAVIGATION TUTORIAL #1 - это то, что в вам нужно.

  • @forded
    @forded 7 лет назад +3

    Сделай видео-подкаст, историю твоего развития в программировании. Думаю некоторым будет интересно послушать да и что-то выловить из твоей истории.

  • @pashavarava186
    @pashavarava186 4 года назад +10

    я один орнул с лающих собак?))

    • @timur2887
      @timur2887 4 года назад

      это ambient sound для всех его видосов:)

    • @eliseyworker
      @eliseyworker 5 месяцев назад

      вот зачем ты это сказал?) я теперь обратил на это внимание

  • @guardofazeroth4586
    @guardofazeroth4586 7 лет назад +10

    1700 часов в доту

  • @vladimirursu4064
    @vladimirursu4064 5 лет назад +10

    Ты бы лучьше показал что у тебя спрятано в
    Public Page CurrentPage[.......]

    • @КиберСОК
      @КиберСОК 3 года назад

      @@АлександрСоболев-г6н Не OnPropertyChanged("CurrentPage"), а RaisePropertyChanged("CurrentPage")

  • @topProgrammer
    @topProgrammer 3 года назад

    Спасибо, как раз искал как это сделать

  • @Виталий-ш1ц
    @Виталий-ш1ц 4 года назад +2

    Ребята у меня есть секрет, я умею делать золото из ничего, смотрите вот у меня ничего и оп, все красиво да? И теперь есть золото. Понятно? Ну вот, пользуйтесь моим секретом он понятен для всех.

    • @almazsaparbaev2030
      @almazsaparbaev2030 4 года назад +2

      ты прям как автор канала...

    • @Виталий-ш1ц
      @Виталий-ш1ц 4 года назад

      Так я о том же. Ничего не понятно, зачем такое выкладывать...

  • @minimalstory
    @minimalstory Год назад

    Долго не мог понять, где собаки лают)

  • @lavan99
    @lavan99 6 лет назад +11

    Получается тут нарушается паттерн Mvvm т.к. ViewModel знает о View то есть в VM используються Pages

    • @LaiksVel
      @LaiksVel 5 лет назад +2

      вы правы, но это можно обойти если работать не с Page, а с другими ViewModels, при вызове которых будет уже вызываться их View.
      (Может кому ответ пригодится)

    • @ЕвгенийЧ-и1н
      @ЕвгенийЧ-и1н 2 года назад

      @@LaiksVel Как это правильно сделать? Есть пример?

  • @andrewsed_uplisten2019
    @andrewsed_uplisten2019 4 года назад +4

    всё ребятки ,ставлю ему дизлайк, это не урок а хвастовство , понты

    • @topProgrammer
      @topProgrammer 3 года назад

      Сделай лучше без пантов :)

  • @张三-l7r
    @张三-l7r 4 года назад

    it is helpful,thank you so much.

  • @sometexthere4169
    @sometexthere4169 6 лет назад +2

    А где найти исходный код?

  • @evgenijmerkulov7507
    @evgenijmerkulov7507 5 лет назад +1

    Привет, достаточно полезный урок, просто останавливайся на функиональных частях поподробнее и в идеале прикрепляй ссыль на гит или что угодно другое чтобы посмотреть исходники для будующих уроков. Однако не подскажешь, я хочу модернизировать твой код чтобы по кликам на контролы внутри самих страниц они могли сами подпихивать вместо себя другие страницы в главное окно. Есть идеи как это сделать не нарушая MVVM?

  • @mikhail-polyarus
    @mikhail-polyarus 6 лет назад

    допустим у меня есть listbox на странице welcome.xaml, как мне обратиться к этому объекту из главной формы? в welcome.xaml.cs, я его увижу, а в другом классе как? только создав объект класса и задав x:FieldModifier="public"?? но тогда не поменяется содержимое frame ибо это уже новая страница в памяти будет, разве что сделать listbox статическим, но как ??

  • @ClassDoo
    @ClassDoo 7 лет назад

    Молодец)

  • @dartware8539
    @dartware8539 7 лет назад

    Тема интересная, но разжевана уже на всех англоязычных каналах, не принижая стараний автора конечно) Вопрос вообщем то следующий. В этом скринкасте показан случай когда есть окно, в нем грид произвольной структуры, который содержит 3 кнопки и фрейм для содержимого в виде страниц. А теперь предположим что нам надо сделать визард. В этом случае кнопки должны находиться в самих страницах. То есть не вне фрейма, а декларироваться вообще в отдельном файле (в страницах). Как бы адаптировать ваш пример так, что бы по нажатию кнопки Test в странице Test, не выводился банальный MessageBox, а допустим происходил переход на другую страницу?

  • @АлександрИнженер-д4б

    Бабушка мэн

  • @тонистарк-д3ь
    @тонистарк-д3ь 5 лет назад +2

    по UserControl+MVVM сделай уроки пожалуйста.

  • @mr.dandomi
    @mr.dandomi 2 года назад

    А где исходник можно скачать

  • @Serg71007
    @Serg71007 6 лет назад

    Хотел бы уроки по Unity увидеть от тебя) и насчёт фриланса тоже было бы интересно послушать)

  • @ОлександрКаленський-о9с

    когда пытаюсь назначить обработчик кнопке, то ничего не происходит
    вот сам обработчик:
    public ICommand StartClick{
    get{
    return new RelayCommand( () => SwitchScene(Main));
    }
    }

    • @ОлександрКаленський-о9с
      @ОлександрКаленський-о9с 4 года назад

      И кстати, когда в Frame задавал свойства через Binding , то нужно делать это так:
      Content="{Binding Path=CurrentPage}", а не так: Content="{Binding CurrentPage}". По крайней мере у меня так не работало.

    • @ОлександрКаленський-о9с
      @ОлександрКаленський-о9с 4 года назад

      *кнопка находится внутри страницы, а не отдельно.

  • @WarnerBrosers
    @WarnerBrosers 6 лет назад

    Было бы прикольно рассказать про родительский класс ViewModelBase, я новичок в wpf и мне пришлось пол интернета перелопатить, чтобы допереть, что в метод set у CurrentPage, нужно добавить метод RaisePropertyChanged().

    • @BashkaMen
      @BashkaMen  6 лет назад

      Алексей Кудря все это в след уроке по wpf, он будет на этой недели

  • @ДенисКалинин-ь2и
    @ДенисКалинин-ь2и 7 лет назад

    Можешь ли ты помочь разобраться в NingaliNET, по твоему видосу слегка не понял как ей пользоваться.

  • @NotxctQ
    @NotxctQ 3 года назад

    Где исходники?

  • @sashken23
    @sashken23 7 лет назад

    Расскажи пожалуйста подробнее про фриланс. Сам люблю программировать, зарегистрирован на нескольких фриланс площадках, но получить там заказ невозможно, так как есть много "старичков на сайте", которые и забирают заказы(

  • @blackdream9372
    @blackdream9372 2 года назад

    Как открыть новое окно при помощи MVVM?

    • @АндрейМещенок
      @АндрейМещенок 2 года назад

      RelayCommand

    • @blackdream9372
      @blackdream9372 2 года назад

      @@АндрейМещенок Это понятно, но типо просто
      Form2 form = new Form();
      form.show();

  • @vladimirr1575
    @vladimirr1575 6 лет назад +4

    Зачем так хаотично кликать по всем вкладкам? Сразу видно, нервный дотер

  • @24Eugen
    @24Eugen 6 лет назад

    Как у вас так работает эта конструкция?
    public ICommand ChangeContent_click
    {
    get
    {
    return new RelayCommand(() -> MessageBox.Show("7777"));
    }
    }
    У меня компилятор выдает ошибку (Недоступный термин ")" в выражении) и ссылается на эту часть () ->

    • @BashkaMen
      @BashkaMen  6 лет назад

      Eugene Oleynikov =>

    • @24Eugen
      @24Eugen 6 лет назад

      СПАСИБО. я очень долго искал чтоб понятно было как же реализован этот паттерн в c# Спасибо.

  • @danik2412
    @danik2412 4 года назад

    Привет, помоги пожалуйста. Если я в VM реализую инициализацию каких-либо страниц, то у меня выдает ошибку переполнения стека при запуске.

    • @BashkaMen
      @BashkaMen  4 года назад

      значит у тебя циклическая инициализация, StackOverflowException

    • @dieyoung2672
      @dieyoung2672 2 года назад

      @@BashkaMen столкнулся с такой же проблемой, можешь подсказать, как её решить?

    • @BashkaMen
      @BashkaMen  2 года назад

      @@dieyoung2672 не допускай рекурсивных инициализаций

  • @EarthCitizen124
    @EarthCitizen124 3 года назад

    Не самая лучшая практика double в цикле for использовать, насколько я знаю... а точнее так даже нельзя делать из-за накопления погрешости в double....

  • @Buarpa
    @Buarpa 4 года назад +1

    Клёвое видео, хорошо рассказал, но 8:55 НиПаНяТнА : \

  • @Hello_world_2020A
    @Hello_world_2020A 4 года назад

    Автор как написать такую простую программу circle dock
    СДЕЛАЙ УРОК

  • @АртёмКраус-ъ1ф
    @АртёмКраус-ъ1ф 2 года назад

    Жаль, что автор исходный код не скинул

    • @BashkaMen
      @BashkaMen  2 года назад

      Есть в новом видео про wpf
      Как готовить wpf

  • @cxone6293
    @cxone6293 6 лет назад +1

    Подскажи пожалуйста, что у тебя в
    public Page CurrentPage
    это?
    public Page CurrentPage { get { return _currentPage; } set { _curretnPage = value; } }

    • @cxone6293
      @cxone6293 6 лет назад

      Какой то бред... Не могу понять почему не работает... Создаю такую же кнопку тест - она работает... А переключение страниц - нет...

    • @cxone6293
      @cxone6293 6 лет назад

      Если ICommand меняю с SlowOpacity на MessageBox - сообщение вылазит... Но почему не меняются страницы -_-

    • @cxone6293
      @cxone6293 6 лет назад

      В коде меняется значение переменной currentPage, но на вьюшке не отображается

    • @cxone6293
      @cxone6293 6 лет назад +6

      Всё) нашел) там надо прописать public Page CurrentPage { get { return _currentPage; } set { _curretnPage = value; RaisePropertyChanged(() => CurrentPage);} }

  • @Sobaka1114
    @Sobaka1114 5 лет назад

    Hello world!

  • @АбдулхакимМагомедов-ж6у

    Ты классно всё сделал, но пожалуйста, исходный код скинь.

  • @DREAMPLAY_show
    @DREAMPLAY_show 5 лет назад

    Как ты относишься до реализации через биндинг DataTemplateSelector к ContentControl ?
    Вроде проще (или это мне .. я зачастую так и делаю прост.. )
    и как-то более функционально (мой пример prntscr.com/mx0hwv)

    • @BashkaMen
      @BashkaMen  5 лет назад

      в принципе не плохой вариант, просто зачастую темплейт применяется 1 раз потому его проще инлайн обьявить и все, если нужно будет переиспользовать, я проиграю со своим подходом, и скорее вынесу в отдельный файл

    • @DREAMPLAY_show
      @DREAMPLAY_show 5 лет назад

      @@BashkaMen насчет инлайн что-то не понял (

  • @davidobi225
    @davidobi225 4 года назад

    i wish you also made this in English

  • @markshv4293
    @markshv4293 4 года назад

    бедная собачка на фоне, устала лаять

  • @edwardfreedom
    @edwardfreedom 5 лет назад

    Зачем в task использовать thread.sleep?

    • @тонистарк-д3ь
      @тонистарк-д3ь 5 лет назад

      Если за 8 месяцев не ещё понял отвечаю - чтобы переход был заметен, иначе прозрачность увеличится/уменьшится за доли секунды и человек даже не заметит.

    • @Kinels750
      @Kinels750 4 года назад +1

      @@тонистарк-д3ь в таске используют Task.Delay() к нему можно прикрнутить await

    • @тонистарк-д3ь
      @тонистарк-д3ь 4 года назад

      Максим Солодовников ладно

  • @boburumarov8574
    @boburumarov8574 3 года назад +1

    👎👎👎👎