Уроки WPF. Паттерн MVVM

Поделиться
HTML-код
  • Опубликовано: 12 мар 2016
  • Четвертое занятие по WPF. Правильное разделение бизнес-логики и представления при помощи паттерна MVVM.
    Поддержи развитие канала! money.yandex.ru/to/4100139057...
    Qiwi Wallet +79534684569
    Группа ВКонтакте: easycomp
    Блог Алексея Лосева: losev-al.blogspot.ru

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

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

    Полезное видео!! Отдельное спасибо, что помогаете другим становится лучше!!

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

    Можно узнать зачем тут DependencyProperty? Свойства зависимости используются для поддержки привязок, стилей, анимаций и используются больше для создания UserControl ов. У вас класс PersonsViewModel не фигурирует в XAML коде ВООБЩЕ. Для решения этой задачи достаточно обычных свойств и реализованного интерфейса INotifyPropertyChanged.

  • @iuriiaksenov9361
    @iuriiaksenov9361 8 лет назад

    Спасибо большое!!!
    Очень понятно, доступно! Видео очень помогло начать!

  • @astoriuswho8250
    @astoriuswho8250 8 лет назад +6

    Курс и правда очень интересный, у вас с коллегой получаются очень достойные уроки

  • @user-ir5oq8jr9w
    @user-ir5oq8jr9w 7 лет назад

    Cпасибо за урок, очень позновательно!

  • @user-re2th1mm5h
    @user-re2th1mm5h 8 лет назад

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

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

    Спасибо! Очень доступно)

  • @bohgdanlion4521
    @bohgdanlion4521 8 лет назад

    Спасибо за урок, очень кстати. Лайк.

  • @ReasonX3
    @ReasonX3 8 лет назад +1

    Спасибо за уроки!
    Пожелание: подобные уроки, где рассматриваются определенные паттерны и механизмы взаимодействия между элементами приложения, хотелось бы видеть в формате 7-го урока ("Пример создания приложения"). То есть, вначале теория с диаграммами, а потом практика.

    • @user-ib1xc8ic7n
      @user-ib1xc8ic7n 8 лет назад

      +ReasonX7 Да, уже записали в таком формате, как говориться, следите за обновлениями.

  • @user-is4ji8mr7j
    @user-is4ji8mr7j 4 года назад

    Полезно. Вообще считаю, что это лучше чем win forms!

  • @Maximurz1k
    @Maximurz1k 8 лет назад

    Наконец-то!

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

    СУПЕР!!!!!

  • @user-bg9sg1ve2e
    @user-bg9sg1ve2e 3 года назад +2

    Здравствуйте. Включил видео, чтоб играло на фоне, и тут услышал голос Галкина.

    • @user-zv3in3zj1v
      @user-zv3in3zj1v 3 года назад

      А я все никак не могла понять, кого же слушаю))

  • @zerg1212
    @zerg1212 8 лет назад +1

    Расскажите про MVVM light toolkit. Какую инфраструктуру он создает в проекте и как ей правильно пользоваться?

  • @ReasonX3
    @ReasonX3 8 лет назад +5

    А есть в планах, создание серии видео, где вы совместно разрабатываете приложение? Хотелось бы увидеть, как люди с опытом, работают вместе: как делятся задачи, какие требования к архитектуре приложения для возможности нормального распределения труда, как решается вопрос рефрактора и и.д.

    • @user-ib1xc8ic7n
      @user-ib1xc8ic7n 8 лет назад +2

      +ReasonX7 Пока в планах такого нет, да и видео продолжительностью часов в 10 чтобы показать основные моменты маловероятно будут смотреть. А вот записать небольшие туториалы по командной разработке... Подумаем.

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

      @@user-ib1xc8ic7n Я понимаю, что это уже некропостинг, но я бы посмотрел бы такое видео. Было бы очень интересно. А по поводу длительности: куча людей смотрит видео турниров по героям 3, а там и по 12 часов видео бывают и по 18=))

    • @user-ib1xc8ic7n
      @user-ib1xc8ic7n 5 лет назад +1

      @@AnaRxistBoD Парное программирование в чистом виде не используем, а вот разбиение на задачи, это командный процесс. Аналитик пишет требования, разработчики разбивают его на задачи, задают уточняющие вопросы, оценивают их. Ну и потом каждый идет и решает свою задачу, обращаясь за помощью при затыке. Перед коммиттом еще ревью проводится, но это опять каждый за своим компьютером, переписка в комментариях к коду. Посмотреть как проектируется архитектура - тоже довольно скучно. Собираются люди, обсуждают требования, рисуют что-то на доске. Потом расходятся, рисуют что-то в редакторах, обмениваются, обсуждают, перерисовывают, собираются обсуждают какие езе требования есть, потом приходит совсем неожиданное требование, перерисовывают.Самое обидное, когда архитектуру приходится сильно менять когда уже код написан :)

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

    Как будто вернулась на лекцию к Алексею Юрьевичу =)

  • @user-hc8sp7ty9x
    @user-hc8sp7ty9x 8 лет назад

    Спасибо! Очень интересное и полезное видео.Если можно расскажите как с помощью DependencyObject управлять видимостью столбцов в DataGrid.

  • @Hadouken247
    @Hadouken247 8 лет назад +9

    Хотелось бы хороших уроков по фреймворку Prism или MVVM Light.

    • @rus79k26
      @rus79k26 8 лет назад +6

      +Макс Зимин
      Или Catel

    • @user-ps1lu9gp5f
      @user-ps1lu9gp5f 5 лет назад

      А зачем вообще нужен этот MVVM Light? Какие он даёт преимущества, чтобы можно было потерпеть неудобства связанные с его использованием?

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

    Спасибо, интересный урок!
    Но так работает быстрее!
    If берет много ресурсов, и зачем делать отрицание И, когда можно сделать просто ИЛИ.
    private bool FilterPerson(object obj)
    {
    Person pers = obj as Person ;
    return string.IsNullOrWhiteSpace(FilterText) || pers == null || pers.LastName.Contains(FilterText) || pers.FirstName.Contains(FilterText);
    }

  • @user-dm4jn2jg4p
    @user-dm4jn2jg4p 7 лет назад

    ХОЧУ ЕЩЁ!!!!! хотя учитывая что последний урок был год назад, то продолжение не предвидится. Но на всякий случай подписался.
    А Dem Bulson пускай свое видео сделает так как он считает нужным. Хотя вряд ли меня заинтересует видео в формате "это перетащите сюда, а здесь не забудьте поставить запятую..." Терпеть не могу когда много воды.

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

    Круто, конечно, но как теперь эту фильтрующуюся коллекцию менять?

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

    Какая комбинация клавиш меняет тип во всём куске кода, как на 5:07 ?

  • @user-yc5bk3kn5g
    @user-yc5bk3kn5g 7 лет назад

    Правильно ли я понимаю что все данные лежат в window.DataContext и ViewModel туда подмешивает нужные значения, а Grid просто содержимое DataContex выводит?

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

    Привет. А продолжения походу не будет?

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

    В 2022 году смотрю, до сих пор актуально

  • @mozgotrahable
    @mozgotrahable 8 лет назад +7

    Ну здрасьте приехали. А как же INotifyPropertyChanged? Новые депенденси проперти, обычно, добавляют в кастомные контролы, насколько мне известно

    • @akass4010
      @akass4010 8 лет назад

      +Андрей Телешев О как, подскажете как это сделать?

    • @user-ib1xc8ic7n
      @user-ib1xc8ic7n 8 лет назад +1

      +Антон Грибов В лекции с примером полной сборки приложения на MVVM будет и про INotifyPropertyChanged. Но если в двух словах, то INotifyPropertyChanged менее требователен по памяти, а Dependecy Property быстрее работает с Binding.

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

      Алексей Лосев, подписался на Ваш Ютуб канал, хоть на нём нет видео).
      Нам новичкам важно слышать мысли профи, мне так проще воспринимать материал. Жду Ваши видео.

  • @DukeSpontaneous
    @DukeSpontaneous 8 лет назад

    При попытке присвоить обработчик ICollectionView.Filter к DataTable.DefaultView у меня стабильно выбрасывается следующее исключение:
    "Необработанное исключение типа "System.NotSupportedException" в PresentationFramework.dll
    Дополнительные сведения: Указанный метод не поддерживается."
    IDE: Microsoft Visual Studio Community 2015
    В чём причина?

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

    не удалось найти тип или имя пространства имен icollectionview

  • @Dude-iz2dw
    @Dude-iz2dw 7 лет назад

    Откуда взялся интерфейс ICollectionView ? Я подключал неймспейс System.Windows.Data его всеравно не находит.

    • @Dude-iz2dw
      @Dude-iz2dw 7 лет назад

      Аааа он в пространстве System.ComponentModel

  • @sviatoslav3347
    @sviatoslav3347 8 лет назад

    Дайте пожалуста совет начинающему програмисту. Стоит передо мной задача написать проект с использованием БД. Так вот вопрос: стоит ли мне изучать все уроки С# или можна пропустить или перескочить некоторые и изучить EF и LINQ сразу. Мне кажется что я не буду в своем проекте пользоваться наследованием и делегатами. Или у меня неправильный подход. Заразние спасибо за ответ и за видео которые Вы делаете.

    • @Defazze
      @Defazze  8 лет назад +3

      +Svyatoslav изучение EF и LINQ автоматически приведет Вас к изучению наследования и делегатов.
      Если, конечно, Вы будете изучать эти технологии серьезно, а не по верхам.
      Поэтому я бы всё-таки посоветовал начать с наследования, делегатов, интерфейсов, множеств, лямбда-выражений, а потом EF и LINQ.

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

    тяжело но питательно... очень

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

    А как сделать ту самую связку между View и ViewModel, так чтобы View не знала о ViewModel? подскажите пожалуйста

  • @romazherdev
    @romazherdev 8 лет назад +1

    Как подписываться на события согласно паттерну MVVM? Двойной клик по той же кнопке просто неприемлем, насколько я знаю.

  • @user-oc9js1vc8d
    @user-oc9js1vc8d 8 лет назад

    А где нибудь есть уже готовые шаблоны всех элементов ? Не каждый может себе сделать красивый интерфейс.

    • @green16go
      @green16go 8 лет назад

      Влад Касперович, есть множество различных готовых библиотек компонентов, шаблонов, например www.telerik.com/products/wpf/overview.aspx

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

      mahapps.com/

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

    Вроде попонятнее рассказано, чем перед этим читал про mvvm на сайте professorweb

  • @user-li5ls7gu5z
    @user-li5ls7gu5z 4 года назад

    почему забросили уроки?

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

    Он патао, массивы називает коллекциями, а обекти класами

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

    Не сталкивался с депендро пропертем подскажите в чем его преимущество чем если бы мы просто написали
    string _FilterText;
    public string FilterText
    {
    get{return _FilterText;}
    get{_FilterText=value;//а дальше поизвести фильтрацию Items методои LINQ}
    }

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

    2:05 Как автор так быстро копирует строку с new Person?

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

    Поражают хэйтеры. Если вы знаете реализацию INotifyPropertyChanged, зачем вы вообще смотрите эти уроки? Значит все-таки заинтересовало ....

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

    Тоесть научили как не надо делать, а как теперь правильно строить проект по патерну?

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

    А у меня в VS 2017 при запуске программа выдает ошибку: "System.InvalidOperationException: Коллекция Items должна быть пустой перед использованием ItemsSource."

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

    Скачуєте пакет Prism і цього всього не треба. Це так, чисто з метою ознайомлення

  • @mrSmith-lc7hk
    @mrSmith-lc7hk 3 года назад +1

    720p Серьезно?

  • @user-lc9wd8xu2r
    @user-lc9wd8xu2r 2 года назад

    Программирование - это просто.... Очень бл..ть, просто.

  • @inc6497
    @inc6497 7 лет назад +1

    Это эквивалентно:
    !( a || b) !a && !b

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

    Хорошие видео, но мне так не нравится, когда говорят "вы так никогда не делайте, это только для примера", и ты в итоге не понимаешь потому что это учить не хочется, раз так все равно делать не надо, а как надо "мы потом покажем", ну почему сразу не показать как правильно

  • @user-bp5pb4oz3h
    @user-bp5pb4oz3h 5 лет назад +1

    ничего не биндится. Повторяю строка к строке. Автор что-то умалчивает. Ссылка из XAML на свойство зависимости во ViewModele не работает. Свойство открытое. С такими уроками можно 300 лет учиться. Учусь 5-й год. Каналы типа "Программирование это просто" звучат издевательски. Обучение стоит больших денег. Учат толпу, индивидуального подхода нет, видеоуроки редко бывают удачные, в основном галопом по европам. Автор канала - двуличный лицемер.

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

    Нахожу это видео бесполезным. Просмотр этого видео начинающими никак не поможет им осознать суть MVVM и применять его в своих программах. В лучшем случае они могут попытаться самостоятельно набрать приведенный здесь пример и потом долго размышлять что им дает этот подход. Заменить сетку на список в качестве элемента отображения и при этом ничего не менять в коде может и прикольно с точки зрения демонстрации независимости отображения от данных, но на практике никак не упрощает и не ускоряет разработку. Ну, разделили и что с этого? Планируем периодически зачем-то менять внешний вид окна, заменяя одни компоненты другими и при этом не трогать остальной код? А с первого раза нельзя так спроектировать UI, чтобы потом не требовалось его менять? И если не требуется его менять, то что мне еще дает этот паттерн. Может что-то и дает, но из этого видео это не очевидно.

  • @22-marsbars-ru
    @22-marsbars-ru 4 месяца назад

    Раздутое видео, для новичка, который умеет только с WinForms работать вообще информации 0

  • @MrIliaborisov
    @MrIliaborisov 8 лет назад

    подскажите пожалуйста пытаюсь как в видеоуроке передать в CollectionViewSource.GetDefaultView объект типа List .. а там все равно null остается ..правда список из 8000 элементов.. но он пишет что там null в Items..

    • @user-ib1xc8ic7n
      @user-ib1xc8ic7n 8 лет назад

      +MrIliaborisov Нужен кусок кода что вы делаете, задайте вопрос на форумах msdn.ru, если не я, то другие участники вам обязательно помогут.