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

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

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

  • @Anton-Os
    @Anton-Os 8 месяцев назад

    Мощные уроки! Павел -огромное спасибо и побольше Вам добра!

  • @-USER_NAME
    @-USER_NAME 2 года назад +2

    Спасибо большое. Помимо WPF количество дополнительной ( ценнейшей информации ) просто зашкаливает . Буду качать все уроки на диск , так они сохранее будут .

  • @Greiv2008
    @Greiv2008 3 года назад +2

    Чтобы достаточно быстро что то напрограммировать нужно очень много знать просто наизусть из разметки, иначе всё идёт через время и боль как у меня)). Видео самые лучшие из серии MVVM, остальное такой хлам, кстати есть есть ещё поле PasswordBox по моему, я его убрал пока из свого проекта потому что с ним я так понимаю вообще какаето дикая история при использовании MVVM))

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

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

  • @Дмитрийм-л7ф
    @Дмитрийм-л7ф 4 года назад +1

    Классная серия уроков. Спасибо.

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

    Павел, не думали свои курсы организовать?
    А то курсов сейчас всевозможных много развелось, но многие из них оставляют желать лучшего. Думаю, у Вас бы отличный курс получился. Я бы точно пошел, чтобы закрепить знания в 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 года назад

      Аналогичная задача. Пытался разобраться с сервисом навигации, потом решил что сначало напишу основную логику. Если за это время у автора выйдет видео на эту тему, было бы очень круто. Заранее спасибо. Хотелось бы также увидеть подобный формат по ксамарину, так как конечная цель это написать приложение. Готов донатить, скажите как))

  • @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;}

  • @MegaTembr
    @MegaTembr Месяц назад

    А каким образом wpf подсказывает как привязывать папки и файлы в source?

    • @Shmachilin
      @Shmachilin  Месяц назад

      @@MegaTembr wpf не подсказывает про привязки. Может речь о Студии?

    • @MegaTembr
      @MegaTembr Месяц назад

      @ я понял, это был resharper)

  • @alexkot9849
    @alexkot9849 4 месяца назад

    Мощные уроки! Павел -огромное спасибо и побольше Вам добра!