WPF+MVVM часть 2 (Перезалив) Стили, шаблоны, триггеры

  Рет қаралды 7,486

Павел Шмачилин

Павел Шмачилин

Күн бұрын

Пікірлер
@Anton-Os
@Anton-Os 8 ай бұрын
Мощные уроки! Павел -огромное спасибо и побольше Вам добра!
@-USER_NAME
@-USER_NAME 2 жыл бұрын
Спасибо большое. Помимо WPF количество дополнительной ( ценнейшей информации ) просто зашкаливает . Буду качать все уроки на диск , так они сохранее будут .
@Дмитрийм-л7ф
@Дмитрийм-л7ф 4 жыл бұрын
Классная серия уроков. Спасибо.
@Greiv2008
@Greiv2008 3 жыл бұрын
Чтобы достаточно быстро что то напрограммировать нужно очень много знать просто наизусть из разметки, иначе всё идёт через время и боль как у меня)). Видео самые лучшие из серии MVVM, остальное такой хлам, кстати есть есть ещё поле PasswordBox по моему, я его убрал пока из свого проекта потому что с ним я так понимаю вообще какаето дикая история при использовании MVVM))
@Shmachilin
@Shmachilin 3 жыл бұрын
Так в любой области что бы что-то начало получаться, надо потратить 10 000 часов. По себе заметил что после знакомства с новой технологией только через год ежедневной работы с ней более-менее исчезают детские проблемы, через два года можешь сам что-то изобретать и подмечать ошибки у других, а через три года можно считать что ты в ней более-менее разобрался. Это как раз примерно 10 000 часов и есть.
@VyacheslavTamplier
@VyacheslavTamplier 3 жыл бұрын
Павел, не думали свои курсы организовать? А то курсов сейчас всевозможных много развелось, но многие из них оставляют желать лучшего. Думаю, у Вас бы отличный курс получился. Я бы точно пошел, чтобы закрепить знания в C#.
@riyazvagapov1449
@riyazvagapov1449 Жыл бұрын
Павел, здравствуйте. А что думаете насчет вышедшего MAUI?
@__Goodwin__
@__Goodwin__ 2 жыл бұрын
Отличное видео! Спасибо! Если не сложно подскажите пожалуйста. Есть связанные по ключу поля БД, есть основная форма с текстблоком, и форма редактирования с комбобоксом. Через Linq to SQL, сформированы классы. При привязке одного свойства к комбобоксу и текстбоксу, возникает исключение, что одно свойство связано с 2мя граф. элементами. Как правильно поступить в данной ситуации? Делать ещё одно поле в БД не правильно мне кажется. Если делаю новое свойство и в классе sql присваиваю ему значение, ошибка та же (. Уже голову сломал. Может подскажете хоть в какую сторону копать ?
@Shmachilin
@Shmachilin 2 жыл бұрын
Здравствуйте! Во-первых, Вам надо отделить мух от котлет. Интерфейс должен быть отдельно, База данных отдельно. Добавление поля ввода, или чек-бокса на экран никак не должно влиять на базу данных. Создайте полноценную модель-представления. И в ней руководите Базой данных. Сразу куча ошибок уйдёт. Базу данных отладить надо в консольном приложении.
@__Goodwin__
@__Goodwin__ 2 жыл бұрын
@@Shmachilin это всё отделено, может я не совсем корректно выражаюсь. Я генерирую сущносные классы БД Linq to SQL. Обрабатываю данные в классе viewmodel, селектирую, группирую, сортирую не важно ... полученный экземпляр класса подсовываю к datacontext формы. При изменении в бд возникает событие в свойстве сгенерированного автоматически класса и вызывается фунция SendPropertyChanged("имя"), которое оповещает окно об изменении. Если я просматриваю данные, проблем нет, в 2 разных формах у меня привязанные свойства обновляются и сама бд и логика работает правильно. Но если я в одной форме, пытаюсь присвоить свойству новое значение, которое так же привязано к другому графическому элементу формы, этот код: if(this.ИМЯ.HasLoadedOrAssignedValue == true) Генерирует исключение System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException() Причем связано это именно с binding-гом этого свойства к 2м элементам. Если я отвязываюсь от одного элемента, все работает как надо.
@__Goodwin__
@__Goodwin__ 2 жыл бұрын
И это ситуация получается только при отношении "один ко многим"
@TheMilliardo
@TheMilliardo 4 жыл бұрын
Здравстуйте Павел. Недавно начал смотреть ваши видео так как нашел работу под WPF. По немножку осваиваю МВВМ и никак не пойму как правельно работать с окнами. Прочел много где про юзерконтролы и как их применить в мввм, но везде одно и тоже. Один меню с какойто стороны и меняешь их в окне. Можно будет обьяснить нормально что да как или же есть видео и я пока что не дошел до него.
@Shmachilin
@Shmachilin 4 жыл бұрын
Здравствуйте! Напишите какую конкретно задачу пытаетесь решить и что непонятно.
@TheMilliardo
@TheMilliardo 4 жыл бұрын
@@Shmachilin не пойму как правильно сделать навигацию в мввм. Сейчас использую одно окно и загружаю в неё страницы сколько надо. Но на сколько я прочёл и смотрел в ютубе мне вообще только юзеркотролы надо. Пфтаюсь сделать простую программку, которое при запуске просит пароль для входа(из базы данных) а потом переход на главную страничку. От туда на другие страницы и обратно на главную.
@АртемИванов-д7з
@АртемИванов-д7з 4 жыл бұрын
Аналогичная задача. Пытался разобраться с сервисом навигации, потом решил что сначало напишу основную логику. Если за это время у автора выйдет видео на эту тему, было бы очень круто. Заранее спасибо. Хотелось бы также увидеть подобный формат по ксамарину, так как конечная цель это написать приложение. Готов донатить, скажите как))
@MegaTembr
@MegaTembr Ай бұрын
А каким образом wpf подсказывает как привязывать папки и файлы в source?
@Shmachilin
@Shmachilin Ай бұрын
@@MegaTembr wpf не подсказывает про привязки. Может речь о Студии?
@MegaTembr
@MegaTembr Ай бұрын
@ я понял, это был resharper)
@Amkonax
@Amkonax 3 жыл бұрын
Спасибо за видео! Подскажите, не получается нормально реализовать DataTrigger как в конце. Я использую DataGrid, прописывал и в CellStyle, и в DataGrid.ItemTemplate, и ставил TemplateColumn и туда триггер прописывал. Например сделать фон красным если поле пустое: И это работает, если я отредактирую поле. А вот в начале, после того как вьюшка построится - не работает.
@Shmachilin
@Shmachilin 3 жыл бұрын
А не может быть такого, что Artist is null?
@Amkonax
@Amkonax 3 жыл бұрын
@@Shmachilin спасибо за ответ. Да, я вчера уже ближе к утру разобрался, все работает. Правильно делать Binding="{Binding Artist}" Value="{x:Null}". Но я все равно не понимаю, почему так. Artist это простое стринговое свойство. Если я редактирую элемент и стираю содержимое, то фон красится, но если я тут же обновлю datagrid, то ячейка опять становится дефолтной. Получается, что при создании объекта модели, если в string свойство писать пустую строку, то туда пишется null? А если уже потом, редактируя, руками записать "", то запишется пустая строка? Я еще плохо разбираюсь в таких механиках, хотелось бы знать почему всё именно так)
@Shmachilin
@Shmachilin 3 жыл бұрын
Как у Вас модель создаётся?
@Amkonax
@Amkonax 3 жыл бұрын
@@Shmachilin Tracks.Add(new Track(file.Name, file.FullName, tags.Tag.FirstPerformer, tags.Tag.Title, tags.Tag.Album)); Здесь библиотека TagLib читает теги из аудиофайла. В поле Artist пишется tags.Tag.FirstPerformer. В самой библиотеке оно определено так string TagLib.Tag.FirstPerformer {get;}
@alexkot9849
@alexkot9849 5 ай бұрын
Мощные уроки! Павел -огромное спасибо и побольше Вам добра!
WPF+MVVM часть 12.1/14 - База данных Entity Framework Core
3:29:54
Павел Шмачилин
Рет қаралды 14 М.
БАБУШКА ШАРИТ #shorts
0:16
Паша Осадчий
Рет қаралды 4,1 МЛН
진짜✅ 아님 가짜❌???
0:21
승비니 Seungbini
Рет қаралды 10 МЛН
-5+3은 뭔가요? 📚 #shorts
0:19
5 분 Tricks
Рет қаралды 13 МЛН
*NEW* Cronus Zen Update Guide Software and Firmware SETUP!
8:54
GRIDNET-OS -LIVE Development Stream
2:03:30
GRIDNET
Рет қаралды 3
WPF - WebAPI - ASP.NET Core - Docker
3:15:28
Павел Шмачилин
Рет қаралды 6 М.
Пишем свой пул потоков
1:10:52
Павел Шмачилин
Рет қаралды 4 М.
БАБУШКА ШАРИТ #shorts
0:16
Паша Осадчий
Рет қаралды 4,1 МЛН