[C#] WPF MVVM. Реализация

  Рет қаралды 68,541

BashkaMen Programming

BashkaMen Programming

Күн бұрын

Пікірлер: 97
@Виталий-ш1ц
@Виталий-ш1ц 5 жыл бұрын
Урок номер 1: изучаем букву А Урок номер 2: Учимся писать букву А Урок номер 3: Берём бозон Хиггса и рассчитываем массу частицы атома протонной звёзды, имея параметр полёта баллистической кривой в синусоидой плоскости без расчета угла искажения преломляющегося отражения от рефрактора гиперболы. Это так выглядит для начинающих.
@artyombelousovig4901
@artyombelousovig4901 4 жыл бұрын
На самом деле , если переписать код в студию и потыкаться в него так - сяк , то (при наличии хоть мало мальски чугунной задницы) становится более - менее понятно
@zayarniy
@zayarniy 4 жыл бұрын
На самом деле использование MVVM подразумевает хорошее знание C#. Это мощная технология, но она требует не маленьких начальных знаний.
@Dmitriy-k2z
@Dmitriy-k2z 4 жыл бұрын
Ха-ха-ха... ЗАЧЕТ ))
@FabioBannet
@FabioBannet 4 жыл бұрын
@@zayarniy Ну я на шарпе работаю уже год, WPF юзаю чуть меньше. Но большая часть работы MVVM для меня магия ) Реализовать, то я реализую. Но как оно передаётся - мозги сворачиваются - хотя тут всё просто.
@JoeSmith-ll9yn
@JoeSmith-ll9yn 3 жыл бұрын
стоп, если третий урок это текущий - то я Вам не завидую я понял всё не смотря предыдущие
@roma9957
@roma9957 Жыл бұрын
Раньше не любил MVVM и думал что это сложно и не было желания изучать эту технологию, но после этого видео всё стало понятно и легко.Спасибо тебе за видосы)
@-USER_NAME
@-USER_NAME 2 жыл бұрын
Посмотрел несколько ваших видео , по началу как то настороженно отнёсся к методам ,но сейчас считаю что это одни из лучших видео-уроков по теме WPF
@BashkaMen
@BashkaMen 2 жыл бұрын
Спасибо, приятно
@kakoytochel2286
@kakoytochel2286 2 жыл бұрын
смотрел 3 месяца назад ничего не понял , посмотрел сейчас и все понял . Magic
@Ярослав-ю3л6ц
@Ярослав-ю3л6ц 5 жыл бұрын
Я везде вижу примеры MVVM с использованием простых данных типа вывода числа или созданием простой модели в конструкторе, а вот с использованием вытянутых данных из БД, нигде не могу найти нормальные примеры. Если мы например вытягиваем данные с помощью DataSet в Table, нужно ли делать отдельную модель которая будет описывать содержимое Table и потом на основе данных из Table создавать коллекцию моделей которая поддерживает привязки? Или мы просто будем использовать Table или его DefaulView во ViewModel?
@raymond1489
@raymond1489 4 жыл бұрын
Да, нужно будет описать модель таблицы, потом с БД заполнять эту модель и далее работать с коллекцией, которую ты заполнил и забнидил. Подробнее: metanit.com/sharp/wpf/22.1.php
@raymond1489
@raymond1489 4 жыл бұрын
И лучше бы научиться работать с EntityFramework, он ускорит процесс работы в разы + представит твои таблицы автоматически в виде моделей, останется только с помощью linq + sql с ними работать.
@davidslutsky9495
@davidslutsky9495 7 жыл бұрын
Как сказала Баба Зина, BashkaMen большая сила!
@scrypto
@scrypto 4 жыл бұрын
11:15 раньше класс наследовался от INotifyPropertyChanged, а теперь от BaseVM, причем оставив INotifyPropertyChanged, все работает
@TheRealNisem
@TheRealNisem 4 жыл бұрын
BaseVM у автора - класс содержащий реализацию INotifyPropertyChanged. Он от него наследуется. просто до этого он наследовался напрямую от INotifyPropertyChanged и реализацию выполнял внутри класса MainViewModel. вы не заметили что реализация исчезла из класса MainViewModel и оставили ее там по этому у вас все работает если оставить наследование от INotifyPropertyChanged.
@ПТИЦАСИНИЦА-д7я
@ПТИЦАСИНИЦА-д7я 2 жыл бұрын
Я так и не увидел связь model и viewmodel. Где же она?
@zayarniy
@zayarniy 4 жыл бұрын
Молодцы! Отличный пример. Нет лишней воды. Очень все живо и понятно.
@jokentosh
@jokentosh 6 жыл бұрын
Ты конечно объясняешь нормально. Но не придаешь значение объяснить от куда и куда идут фалы... создал класс а где создал как подключил сиди гадай.... Хотя бы солюшен эксплорер бы не прятал. И model так и не задействовал(и целой картины работы mvvm не складывается) общая суть улавливается и то из за какого то багажа знаний. А в целом реализацию шаблона так и не обьяснил.
@eu-rn1xb
@eu-rn1xb 5 жыл бұрын
Вот именно. Без модели этот видос не стоит ничего
@user-ffffffff
@user-ffffffff 6 жыл бұрын
Это единственное нормальное видео по mvvm. Спасибо друг, снимай дальше.
@BashkaMen
@BashkaMen 6 жыл бұрын
спасибо :)
@JoeSmith-ll9yn
@JoeSmith-ll9yn 3 жыл бұрын
@@BashkaMen 11:29 о содержимом свойства "Clicks" которое занимает 11 строк мы, как я понимаю, должны догадаться сами дизлайк
@JoeSmith-ll9yn
@JoeSmith-ll9yn 3 жыл бұрын
@@BashkaMen откуда взялся класс BaseVM - тоже непонятно
@dianacold1978
@dianacold1978 2 жыл бұрын
@@JoeSmith-ll9yn 5:00 функция Click
@mavezo6718
@mavezo6718 2 жыл бұрын
@@BashkaMen это действительно хорошее видео. Много смотрел примеров, объяснений, но только твой ролик понял
@lazycat8462
@lazycat8462 3 жыл бұрын
Спасибо за видос. Давно не кодил на wpf и видео очень хорошо освежает память
@РоманПолищуков
@РоманПолищуков 4 жыл бұрын
хороший урок, только просьба в следующий раз показывай изменения в файлах, а так очень интересно смотреть
@TanaTiX44
@TanaTiX44 4 жыл бұрын
Я так понимаю, что количество кликов нужно все же поместить в модель? И как потом правильно соединить модель и вьюмодель?
@argentmize
@argentmize 3 жыл бұрын
В модели, кроме свойств, вообще ничего не должно быть, по-хорошему. Логикой должна заниматься модель представления (view model).
@AlexCSharp
@AlexCSharp 6 жыл бұрын
Братишка, никогда больше не обрезай так окна, ничерта же не понятно что где находится. У нас у всех мониторы, на которых мы видим VS так же, как ты. Не надо этого, пожалуйста.
@TheRealNisem
@TheRealNisem 4 жыл бұрын
ну по идее он же объяснил изначально где что находится, когда было введение рассказывающее что такое MVVM - логика в Models, в ViewModels лежит класс или набор классов отвечающих за передачу данных из модели в интерфейс и наоборот, в Views - лежит интерфейс. просто он обрезал чтобы код был более читаем. Да знаю что я отвечаю на коммент двухлетней давности.
@AlexCSharp
@AlexCSharp 4 жыл бұрын
@@TheRealNisem Да, я этот коммент писал тогда, когда делал тестовое задание для принятия на стажировку. Сейчас я уже мидл и сам пишу архитектурные обучалки. Не очень актуально.)
@СергейЦветов-н4н
@СергейЦветов-н4н 3 жыл бұрын
@@AlexCSharp как собеседование прошло ?
@AlexCSharp
@AlexCSharp 3 жыл бұрын
@@СергейЦветов-н4н Да как, то да сё, тестовое дали, на мотивацию посмотрели, кое как сделал, предложили оплачиваемую стажировку, да и всё.)
@СергейЦветов-н4н
@СергейЦветов-н4н 3 жыл бұрын
@@AlexCSharp ,хмм ,понял ,спасибо ,я думал на стажировке ещё вопросы спрашивают 😅, сижу старое повторяю ,новое учу
@scrypto
@scrypto 4 жыл бұрын
12:25, ты пишешь, что clicks меньше десяти в условии, однако программа разрешает делать 10 клик, почему?
@scrypto
@scrypto 4 жыл бұрын
А
@zayarniy
@zayarniy 4 жыл бұрын
Начало с 0
@scrypto
@scrypto 4 жыл бұрын
@@zayarniy вот я тупой ) Видимо устал к тому времени, как смотрел видос этот ) Этож начало начал, все с 0 идет, и знаю же это )
@Bont1860
@Bont1860 2 жыл бұрын
На гитХабе нет кода этого проекта с MVVM... (((
@gryznysima6872
@gryznysima6872 3 жыл бұрын
НАРОД!!! этот урок надо пересмотреть пару раз и тогда все будет понятно!!!!!
@SoferPeOZN
@SoferPeOZN 4 жыл бұрын
Big like
@ШимченкоМаксим
@ШимченкоМаксим 2 жыл бұрын
Я знаю что 4 года ) но если можешь то ответь . У меня вопрос , а как в viewmodel реализовать все event , ну припустим я хочу pointermove
@evan_kirk
@evan_kirk Жыл бұрын
От интерфейсов *не наследуются* , их *реализуют*
@Magic-oc1jk
@Magic-oc1jk 4 жыл бұрын
Нихуя не понятно, но очень интересно!!!
@andreikhotko5206
@andreikhotko5206 5 жыл бұрын
6:55 свойство необязательно должно иметь и get и set. Достаточно одного из них, чтобы поле стало свойством.
@dimapanasenko5111
@dimapanasenko5111 4 жыл бұрын
Свойство обязательно имеер геттер и сеттер. Просто в озвученном Вами варианте второй не виден (не прописан)
@exys2086
@exys2086 4 жыл бұрын
@@dimapanasenko5111, есть поля без свойств. Если не знаешь - не пиши.
@ЕкатеринаИзосимова-п9к
@ЕкатеринаИзосимова-п9к 2 жыл бұрын
@@exys2086 не надо называть свойства полями, пожалуйста. В видео, кстати, тоже ошибка. Поле - это переменная. Свойство - это метод.
@SuperWolchara
@SuperWolchara 4 жыл бұрын
Ну вот смотришь и что нового? это то что в xml биндишься на свойство, а по факту тоже самое можно сделать delegate + event + invoke. В чем приемущество? Даже тот же инвок вызывается для того чтоб из другого потока обратиться. DataContext я бы трактовал как delegate + event а подписка это path=value На WidowsForms это можно сделать так: class Class1{ delegate void Show(int value); public event EventShow; int Counter = 0; public Class1() { new Task(()=> { EventShow?.Invoke(Counter ++); }).Start(); } } class Form1{ public Form1(){ Class1 class1 = new Class1() class1.EventShow += EventShow; } private void EventShow(int value) { textBox1.Text = value; } }
@BashkaMen
@BashkaMen 4 жыл бұрын
Очень читаемо, класс! А я буду использовать то что нормально читается :) Я вроде в видео не говорил что самому биндинг сделать нельзя
@SuperWolchara
@SuperWolchara 4 жыл бұрын
@@BashkaMen Я к тому что это не облегчает написание кода, по структуре тоже самое только привязка либо в коде либо в xml. Чем так хвалят этот Binding... Если между контролами то да не нужно даже залазить в код все в xml.
@BashkaMen
@BashkaMen 4 жыл бұрын
@@SuperWolchara хвалят тем что с тебя снимается челый кусок работы - работа с стейтои UI (выключить кнопку, включить) обновить значение текстбокса и тд
@argentmize
@argentmize 3 жыл бұрын
Суть в том, что при таком подходе к разработке у тебя есть разделение на КОД и ДИЗАЙН. Т.е., если ты программист, что часть работы ты с себя можешь скинуть на дизайнера, который по ТЗ накидает интерфейс, настроит взаимодействие и предоставит тебе в итоге готовый интерфейс (я так понял, для этого нужна программа Blend), к которому можно будет прикрутить логику в виде кода непосредственно. Конечно, когда проектик небольшой и/или ты сам себе заказчик, про это вообще не думаешь. Но здесь всё упирается в удобство и скорость. И конечно, никто не запрещает пользоваться дедовскими методами. Однако, если проект большой, где ты уже не один, важно придерживаться какой-то общей концепции, которая всем упростит задачу. Вот и придумывают всякие паттерны проектирования, библиотеки, фреймворки и т.д. В общем, из нового здесь только подход к разработке. А в 2021 и далее будут очередные изменения. WinUI 3, MAUI, Uno Platform, Project Reunion.
@Максим-у5ч3р
@Максим-у5ч3р 5 жыл бұрын
спасибо за видео только просьба показывать все экран монитора, что бы было видно что и где открыто
@ХристианБелов
@ХристианБелов 3 жыл бұрын
Спасибо, очень помог. У меня вопрос: если View не должна знать о ViewModel, и ViewModel не должна знать о View, как тогда во View вывести список объектов (1: название, цена; 2: название, цена; ...)? Ведь эти поля придется создавать динамически, но View не знает о данных, а ViewModel не знает о View и переслать ему пару объектов не может.
@BashkaMen
@BashkaMen 3 жыл бұрын
View знает о ViewModel и биндингами на нее привязывается
@yevheniytymchishin8401
@yevheniytymchishin8401 2 жыл бұрын
рефРакторинг?
@ssss70
@ssss70 6 жыл бұрын
Ну.. какбы.. типа...
@minsoctrud8174
@minsoctrud8174 5 жыл бұрын
Брат) подскажи пожалуйста, как ты такую подсветку кода сделал. Очень удобная!!!
@BashkaMen
@BashkaMen 5 жыл бұрын
MinSoc Trud studiostyl.es/schemes/desertex-revised
@minsoctrud8174
@minsoctrud8174 5 жыл бұрын
@@BashkaMen сердечно благодарен!) Видео позволили за два дня войти в курс дела с WPF!
@sirop4ik
@sirop4ik 4 жыл бұрын
Но я так понял, что это не работает для VS2017 ... или только у меня?
@boroda7694
@boroda7694 5 жыл бұрын
ничего не понятно(
@Dinarqka
@Dinarqka 2 жыл бұрын
Непонятно, откуда взялся интерфейс BaseVM, отсюда ничего непонятно. В целом видос полезный, но это скорее 13 минут для того, чтобы записать себе вопросы, которые потом нужно нагуглить.
@МорковкаСвежая-л1ш
@МорковкаСвежая-л1ш 3 жыл бұрын
жаль что чтобы понять видео нужно пересмотреть его много раз
@mellbonus1337
@mellbonus1337 7 жыл бұрын
а где hacking
@uporka6924
@uporka6924 5 жыл бұрын
Чет если по видосу судить- муть полная. Что бы сделать тоже самое что в формах, надо пукнуть крякнуть, написать кучу непонятного кода. Хрень какая то
@TheRealNisem
@TheRealNisem 4 жыл бұрын
Это во первых не то же самое что в формах( если подразумевать под формами программирование как попало без структуризации проекта). Это паттерн который позволяет подразделить проект на некоторое количество частей. В данном случае 3. В этом проще разобраться чем в такой же по функционалу программе но написанной тяп ляп, а еще такая реализация позволяет вообще отбросить нафиг интерфейс. можно убрать XAML и написать интерфейс на HTML и будет все прекрасно работать без изменения логики. ( коммент скорее не для автора а для будующих поколений, так как автор я думаю за 10 месяцев разобрался с тем для чего нужен MVVM и другие паттерны а так же WPF)
@itcloudguy
@itcloudguy 6 жыл бұрын
за 13 минут рассказать о MVVM ?! Ну ты вообще молодец какой...
@BashkaMen
@BashkaMen 6 жыл бұрын
Кому то нужно пол года на изучение ПАТТЕРНА?
@sergejstreck7026
@sergejstreck7026 6 жыл бұрын
тупой блогер, половина кода вообще остаётся за кадром, кому нахрен нужны такие объяснения, когда не понятна структура проекта! Мальчик, не занимайся не своим делом!
@anonym1548
@anonym1548 4 жыл бұрын
Господи, откуда вы такие беретесь? Юноша, усвойте одно - никто вам здесь ничем не обязан. Нравится смотрите. Не нравится, идете мимо. А то сидите только на диване и обсираете. Всегда нужно оставаться людьми. Если не нравится реализация в видео каких-то моментов, то можно просто по-человечески об этом написать и автор примет это к сведению при создании будущих видео.
@АлексейМелентьев-ч3в
@АлексейМелентьев-ч3в 4 жыл бұрын
клик ад, а видео полезное
@KaizerTheChangeling
@KaizerTheChangeling 3 жыл бұрын
все как то скомкано с кучей запинок, будто сам не уверен в том, что ты делаешь, лично я понял только принцип модели, и то потому что загуглил до этого
@babymayby9270
@babymayby9270 5 жыл бұрын
не не понимаю я этот mvvm зачем все так усложнять
@raymond1489
@raymond1489 4 жыл бұрын
Сложность возникнет когда твой интерфейс приложения смешается бизнес-логикой (функциями, которые например берут данные с БД). MVVM даёт возможность отделить логическую часть от интерфейса, если тебе нужно будет дописать какой то функционал ты залезешь ModelView и там допишешь команды.
@MonichGPT
@MonichGPT 5 жыл бұрын
Че ты делаешь где тут дата ничего не понятно какие-то () => что это вообще такое
@ТвойХозяин-е8л
@ТвойХозяин-е8л 5 жыл бұрын
Monich лямбда выражения. Ты сам виноват в том, что тупой
@ТвойХозяин-е8л
@ТвойХозяин-е8л 5 жыл бұрын
Monich че
@mavezo6718
@mavezo6718 2 жыл бұрын
Что ты на впф забыл, если не знаешь о () => смешной
@Qwerty0.1
@Qwerty0.1 7 ай бұрын
кошмар
@АлександрИнженер-д4б
@АлександрИнженер-д4б 3 жыл бұрын
Обьясняет как будто все понимают язык школоты
@BashkaMen
@BashkaMen 3 жыл бұрын
что?
@АлександрИнженер-д4б
@АлександрИнженер-д4б 3 жыл бұрын
@@BashkaMen моя не понимать кринж этого попита
@Алексей-ч4у3з
@Алексей-ч4у3з 5 жыл бұрын
не рефракторинг, а реФАКТОРинг. видео ни о чем, как учебное не катит совсем
@kavelquu
@kavelquu 3 жыл бұрын
ааа, господи, я сидел не мог понять что это за слово, а это рефакторинг ахахах
@JoeSmith-ll9yn
@JoeSmith-ll9yn 3 жыл бұрын
11:29 о содержимом свойства "Clicks" которое занимает 11 строк мы, как я понимаю, должны догадаться сами дизлайк
@remingtontuflips2797
@remingtontuflips2797 3 жыл бұрын
в самом начале видео было показано, что там
@andrewsed_uplisten2019
@andrewsed_uplisten2019 4 жыл бұрын
короче хрень, учитель из тебя херовый я так и не понял порядок написания что куда от куда пишется оч разочарован, думал всё по порядку расскажешь , не , только диз
@TheRealNisem
@TheRealNisem 4 жыл бұрын
Думать надо учится. думать. ролик полезный. конечно объяснено все достаточно сухо но понять можно. Я сам пересмотрел несколько раз но вник в тему и даже смог ответить людям на вопросы в комментариях.
@user-tu5kz9pv1o
@user-tu5kz9pv1o Жыл бұрын
Смотрел это видео 2 года назад. Непонятно о чем хочет донести челик. Ужасные примеры и повествование. Пересматриваю сейчас - абсолютно то же самое чуство. Цель была не научить - а выпендриться, хз как это назвать. В MVVM может въехать даже человек не дошедший до событий и делегатов, есть живые примеры.
@BashkaMen
@BashkaMen Жыл бұрын
У нас в чате другое мнение
[C#] WPF MVVM + Готовые решения
4:29
BashkaMen Programming
Рет қаралды 17 М.
WPF
16:05
XpucT
Рет қаралды 14 М.
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 7 МЛН
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН
How Strong Is Tape?
00:24
Stokes Twins
Рет қаралды 61 МЛН
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 199 МЛН
[C#] WPF MVVM. Разбор приложения
28:32
BashkaMen Programming
Рет қаралды 25 М.
Уроки WPF. Паттерн MVVM
23:39
Программирование - это просто
Рет қаралды 87 М.
WPF+MVVM на примере игры 2048.
27:34
Юрий Силенок
Рет қаралды 1,7 М.
Делегаты и события на практике
9:20
ExtremeCode
Рет қаралды 153 М.
Шаблон MVVM по-простому + Android Architecture Components.
12:58
Мобильный разработчик | Юрий Петров | Flutter
Рет қаралды 38 М.
[C#] WPF Triggers
10:19
BashkaMen Programming
Рет қаралды 17 М.
WPF C# Professional Modern Flat UI Tutorial
36:44
Payload
Рет қаралды 848 М.
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 7 МЛН