автор дает боевой опыт, таких людей мало, спасибо вам!
@alexkot98493 ай бұрын
Мощные уроки! Павел -огромное спасибо и побольше Вам добра!
@HappyNewYear3063 ай бұрын
Пример по текстам бы ещё посмотреть
@HappyNewYear3063 ай бұрын
Самый лучший учитель в рунете 👍
@hisokamoro81893 ай бұрын
Отсутствует метод InitalizeComponent у app. Может кто подскажет, в чём дело?
@Shmachilin3 ай бұрын
@@hisokamoro8189 а он там должен быть? Это же не окно.
@hisokamoro81893 ай бұрын
@@Shmachilin, ну у Вас при создании хоста в Main есть...
@Shmachilin3 ай бұрын
@@hisokamoro8189 Тут? github.com/Infarh/CV19/blob/be3ecc16b022a68fd7c4ba3399889ec31635ad1b/CV19/Program.cs#L13 Здесь github.com/Infarh/CV19/blob/be3ecc16b022a68fd7c4ba3399889ec31635ad1b/CV19/App.xaml.cs#L13 добавьте App : Application
@hisokamoro81893 ай бұрын
@@Shmachilin , да, там. У меня App наследуется от System.Windows.Application, но все равно не видит InitializeComponent
@hisokamoro81893 ай бұрын
@@Shmachilin , пытался нагуглить решение, удаление obj и bin, а потом пересборка не помогла.
@eatpasta97633 ай бұрын
Наконец-то наткнулся на клад!
@glorglorsky79874 ай бұрын
Объясните, пожалуйста, про метод enumeratelines, вы говорите, что метод будет считывать построчно, но в методе у нас указано, читать, пока не дойдем до конца потока. В итоге мы собственно открыли весь файл, и проглотили его целиком) А как тогда работать с большими файлами целыми, объемам 2+ гигабайт Var x = src_file.enumeratelines(); Вернёт "прочитает" файл в оперативку. Может я что-то не так понимаю?
@Shmachilin4 ай бұрын
Метод возвращает тип IEnumerable<T>? Внутри метода есть ключевое слово yield? Если на оба вопроса ответ "да", то это не обычный метод. Это "генератор". При компиляции этот метод компилятором будет "выдран" из вашего кода, и на его основе будет создан класс - перечислитель. Класс этот будет реализовывать конечный автомат. Таким образом, когда Вы вызываете этот метод, будет создан и возвращён Вам этот самый перечислитель. Но в этот момент файл открыт не будет. Файл будет открыт, и начнётся процесс его чтения лишь тогда, когда перечислитель начнёт выдавать объекты. При этом, Вы можете прервать перечисление в любой момент и, уничтожив веречислитель, Вы уничтожите и сеанс работы с файлом. Кроме этого, при чтении очередной порции данных все предыдущие порции (строки) ни где сами по себе не сохраняются. А все последующие порции (строки) ещё не созданы. Таким образом, размер файла перестаёт иметь значение. В буфере чтения будет находится лишь одна строка.
@glorglorsky79873 ай бұрын
@@Shmachilin спасибо!
@glorglorsky79874 ай бұрын
Так чем команды отличаются от обработчика событий? Не раскрыта тема, почему лучше пользоваться командами, обьясните, пожалуйста?
@Shmachilin4 ай бұрын
Обработчик события - это делегат. Это просто ссылка на функцию, которая будет вызвана в момент возникновения (генерации) события. Ссылка на функцию (делегат) ни как не может определять - можно его вызывать, или нет. Делегат не может обладать свойствами (на пример локализуемым именем). Делегат не может сам по себе выполнять клонирование процесса своего вызова. А команда может. Команда - это оболочка над делегатом метода. А то и не одного... Это капсула, в которую можно поместить любую логику и присовокупить данные. А ещё поведение. К примеру, команда, будучи сделана асинхронной, может иметь дополнительную функциональность отмены выполняемой операции, может быть снабжена информером прогресса.
@glorglorsky79874 ай бұрын
Подскажите, пожалуйста, в чем может быть ошибка с методом расширения? Неоднозначный вызов следущий методов или свойств. Я так понял, мы написали свой методе NextItem. Почему мы не написали _categories[rnd.next(0, __BooksCount)] для извлечения случайной категории?
@Shmachilin4 ай бұрын
Где-то ещё объявлен метод-расширения с такой же сигнатурой. Возможно что в новой версии .net его добавили официально. Наш тогда стоит удалить.
@РекфилдКрис4 ай бұрын
Мужик! Ты крут. Спасибо. Не часто оставляю комментарии (обычно менее раза в год), но... Это настолько офигенное видео, что я восхищён) Настолько, что на гитабе у тебя +1 follorer)
@glorglorsky79874 ай бұрын
Добрый день, подскажите, пожалуйста. Устанлвил пакеты все, но ругается на mathcore при сборке проекта, пишет, что пакет с таким идентификатором отсутствует . В зависимосиях он висит,подклюен, желтого восклицательного знака нет.
@Shmachilin4 ай бұрын
Добрый день! Кеш попробуйте почистить. Удалить папки bin, obj. А также, если не поможет, удалить из кеша пакетов mathcore.
@ПетровичиК-м5у5 ай бұрын
Павел, а если панель контролов из wpf в winforms через user control и elementhost подрубить, то кнопки управления и слайдер из панели контролов также можно забиндить через viewmodelbase и inotifypropertychange? Делаю плеер на libvlc. Затормозил на этом моменте.
@Shmachilin5 ай бұрын
Скорее всего да. У ElementHost есть свойство DataContext.
@ПетровичиК-м5у5 ай бұрын
@@Shmachilin Благодарю! надо попробовать. Тяжко c# дается если честно и просто времени не хватает на обучение.
@Shmachilin5 ай бұрын
@@ПетровичиК-м5у Нужно больше практики и конкретных, полезных кому-то задач. И стараться уйти поскорее от WinForms.
@thevirusnvgm25185 ай бұрын
Это был крутой курс, спасибо огромное. Надеюсь что в будущем вы продолжите выпускать такой же качественный контент, желаю вам удачи ! (С радостью посмотрел бы ваш стрим про drag and drop например как перетаскивать элемент из одного лист бокса в другой))
@Anton-Os6 ай бұрын
Павел, огромное спасибо! Вот этой информации очень не хватало. Когда каждый раз думаешь, что снова делать всё с нуля-это сильно демотивирует. А с шаблонами, это оказывается довольно легко )) Давно задумывался, как разрабатывают множество однотипных решений. Ещё раз спасибо за Ваш труд!
@zhekis6 ай бұрын
Можете помочь с задачей? Нужно один общий прогресс бар на выполнение 3 задач загрузки картинок по ссылки, кнопки старт и стоп для каждой картинки и ее отображение. Еще кнопка запуска всех задач одновременно.
@НиколайМанжос-ц5л6 ай бұрын
Здравствуйте на просмотре видео 1:37:00 При запуске в дебаге ругается на вот этот код await _db!.Categorys.AddRangeAsync(_Categories)!; Bookinist.Data.DbInitializer: Information: Инициализация категорий... Вызвано исключение: "System.NullReferenceException" в System.Private.CoreLib.dll Object reference not set to an instance of an object.
@Shmachilin6 ай бұрын
Добрый день! У Вас в поле _Categories, либо в _db почему-то пустая ссылка. Ищите где именно, и почему там нет объекта. Отладчик поможет.
@НиколайМанжос-ц5л5 ай бұрын
После долгого перерыва нашел проблему. Спасибо!!!
@Shmachilin5 ай бұрын
@@НиколайМанжос-ц5л В чём была проблема?
@НиколайМанжос-ц5л5 ай бұрын
Сильно боролся с NULL , что и получил пустую ссылку.
@Anton-Os6 ай бұрын
Павел, спасибо за лекцию! Отлично.
@Anton-Os6 ай бұрын
Мощные уроки! Павел -огромное спасибо и побольше Вам добра!
@НиколайМанжос-ц5л7 ай бұрын
Здравствуйте!!! Вот смотрю ваши видео с большим удовольствием по каждой теме по 2 раза. И не могу понять почему у вас в кодах не предупреждений на NULL. Вот ваш код: internal class LambdaCommand : Command { private readonly Action<object> _Execute; private readonly Func<object, bool> _CanExecute; public LambdaCommand(Action Execute, Func<bool> CanExecute = null) : this(p => Execute(), CanExecute is null ? (Func<object, bool>) null : p => CanExecute()) { } public LambdaCommand(Action<object> Execute, Func<object, bool> CanExecute = null) { _Execute = Execute; _CanExecute = CanExecute; } protected override bool CanExecute(object p) => _CanExecute?.Invoke(p) ?? true; protected override void Execute(object p) => _Execute(p); } А вот мой код чтобы не было предупреждений на NULL internal class LambdaCommand : Command { private readonly Action<object?> _Execute; private readonly Func<object?, bool> _CanExecute; public LambdaCommand(Action Execute, Func<bool>? CanExecute = null) : this(p => Execute(), CanExecute is null ? (Func<object?, bool>)null! : p => CanExecute()) { } public LambdaCommand(Action<object?> Execute, Func<object?, bool> CanExecute = null!) { _Execute = Execute; _CanExecute = CanExecute; } protected override bool CanExecute(object? p) => _CanExecute?.Invoke(p) ?? true; protected override void Execute(object? p) => _Execute(p); Знаю что можно отключить <Nullable>disable</Nullable>
@Shmachilin7 ай бұрын
Возможно что когда это писалось, тогда ещё проверка на null не осуществлялась так серьёзно.
@НиколайМанжос-ц5л7 ай бұрын
Спасибо. А в LambdaCommandAsync private readonly ActionAsync<object?> _Execute; ActionAsync пишет не существует.
@Shmachilin7 ай бұрын
@@НиколайМанжос-ц5л Это делегат, который был описан где-то в проекте: public delegate Task ActionAsync<T>(T arg);
@НиколайМанжос-ц5л7 ай бұрын
Большое спасибо разобрался. А на счет <Nullable>disable</Nullable> стоит отключать, или вбить другие параметры
@Shmachilin7 ай бұрын
@@НиколайМанжос-ц5л Если раздражает, то отключите. В реальном проекте стоит держать включённым.
@Buruhtania7 ай бұрын
На 3:31:28 лектор говорит, что с сервера скачалась только первая строчка файла. Хотя в методе GetDataLines() прописан цикл, который качает все строчки файла. Это видно на 3:27:34 при выводе в консоль. Я этот момент не понял. А в целом, всё круто рассказано.
@Anton-Os7 ай бұрын
Только начал смотреть. Уже впечатлён подачей материала. Огромное спасибо!
@НиколайМанжос-ц5л7 ай бұрын
При запуске в дебаге выдаёт ошибкуб ссылается на это строку. public static IHost Host => __Host ??= Program.CreateHostBuilder(Environment.GetCommandLineArgs()).Build(); пишет: System.PlatformNotSupportedException: "EventLog access is not supported on this platform." хотя программа компилируется без ошибок.
@Shmachilin7 ай бұрын
А какая платформа используется? Windows?
@НиколайМанжос-ц5л7 ай бұрын
Core 6.0 Visual Studio Professional 2022
@НиколайМанжос-ц5л7 ай бұрын
Windows 10 Pro
@НиколайМанжос-ц5л7 ай бұрын
Так и не могу сдвинутся с места. выдаёт ошибку: Вызвано исключение: "System.PlatformNotSupportedException" в System.Diagnostics.EventLog.dll Исключение типа "System.PlatformNotSupportedException" возникло в System.Diagnostics.EventLog.dll, но не было обработано в коде пользователя
@Shmachilin7 ай бұрын
@@НиколайМанжос-ц5л Странно. А что в CreateHostBuilder у Вас?
@User-p4s4c7 ай бұрын
Если у кого-то ошибка при старте обучения нейронки с запретом на использования права доступа Admin (нужно Non-Elevated): -ctrl + R -NETPLWIZ -Свойство И изменить членство в группах на обычного пользователя
@tadwhat8 ай бұрын
Врятли это хорошая идея, хранить серверную логику связи с бд на клиенте
@Shmachilin8 ай бұрын
Не храните.
@НиколайМанжос-ц5л9 ай бұрын
А где можно скачать карты
@Shmachilin9 ай бұрын
Какие?
@hoorbazoom9 ай бұрын
странно, но сейчас там есть ещё "Bonaire, Sint Eustatius and Saba",Netherlands,12.1784,-68.2385, кроме Корей, почему её там не было 3 года назад..
@arif1984may9 ай бұрын
огромная благодарность! такие уроки на вес золота, а Вы бесплатно со всеми поделились знаниями, дай Бог Вам здоровья! Чтобы Вы встретили таких же добрых людей, как и Вы сами!
@АлексейНиколаев-й3к9 ай бұрын
Шедеврально!!!!
@z-tech-extrem9 ай бұрын
Класс 🤙
@McGewen11 ай бұрын
СУПЕР!!!!
@adel712411 ай бұрын
шикарное изложение материала! просто топ
@АннаСмирнова-з9р Жыл бұрын
Осваиваю библиотеку MediatR. Вроде все работает (могу отправить уведомление с помощью _mediator.Publish и обработать в другом классе). Возникла проблема в WPF разметке. В методе обработчике уведомления public async Task Handle(PropertyViewModelChanged notification, CancellationToken cancellationToken) нельзя вызвать метод OnPropertyChanged. Т.е. свойство изменилось, но оно не меняется в отображении с привязкой. Запуск метода из основного потка путем применения Dispatcher invoke не помогает.
@Shmachilin Жыл бұрын
Странно... Проверьте что привязка осуществляется именно к тому экземпляру, который у Вас генерирует это событие.
@АннаСмирнова-з9р Жыл бұрын
@@Shmachilin Привязка 100% работает. Если создать примитивный сервис взаимодействия моделей с одним event и методом, который его вызывает, получить его из DI контейнера в главной модели (подписаться на событие)и передать его через конструктор другой (второй) медели. И из второй модели вызвать метод генерации ивента то всё сразу работает, т.е. все так же заходит в Set и обновляет привязку. Даже если обрабатывать асинхронным методом и назначать свойство то все работает. Не работает только при обработке из медиатра как будто он по неведомой мне причине не хочет взаимодействовать с разметкой. Могу поделиться ссылкой на проект
@АннаСмирнова-з9р Жыл бұрын
т.е. поправлю сам метод обработки, если смотреть в отладчике заходит в set, но не вызывает метод OnPropertyChanged
@НиколайМанжос-ц5л Жыл бұрын
Здравствуйте не могу понять в классе LocationPointToStr в коде public object ConvertBack(object value, Type y, object p, CultureInfo c) { if (!(value is string str)) return null; var components = str.Split(';'); var lat_str = components[0].Split(':')[1]; var lon_str = components[1].Split(':')[1]; var lat = double.Parse(lat_str); var lon = double.Parse(lon_str); return new Point(lat, lon); } return new Point(lat, lon) lat и lon не может преобразовать double в int Вроде написал как у вас
@Shmachilin Жыл бұрын
Добрый день! Класс Point у Вас другой. Не из WPF
@НиколайМанжос-ц5л Жыл бұрын
Добрый день! А как исправить эту ошибку? Вроде пишу программу в WPF, пишу также как и вы.
@Shmachilin Жыл бұрын
@@НиколайМанжос-ц5л что у Вас написано вверху файла - директивы using какие?
@НиколайМанжос-ц5л Жыл бұрын
using System; using System.Globalization; using System.Windows; using System.Windows.Data; Написано все как у вас.@@Shmachilin
@НиколайМанжос-ц5л Жыл бұрын
Все спасибо!!! Все заработало. откатился на начало урока и просмотрев видео 3 раза нашел свою не внимательность... Начинаю продвигаться дальше...@@Shmachilin
@nodly93 Жыл бұрын
Павел, планируется ли продолжение развития этого проекта? Интересно было бы посмотреть :)
@РоманДейкаловский Жыл бұрын
Давно не записывали ничего. Народ ждёт. Наверняка у вас есть какие то свежие интересные вещи. Поделитесь.
@РикоШет-м9ж Жыл бұрын
1:00:58 Binding Datacontext из родительского элемента
@Сергей-в2л9о Жыл бұрын
Обзор сиситемного администратора
@АннаСмирнова-з9р Жыл бұрын
Ошибка при сохранении добавляемой книги : The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Books_Categories_categoryId". The conflict occurred in database "Bokinist.db", table "dbo.Categories", column 'Id'.
@АннаСмирнова-з9р Жыл бұрын
Как вы поняли я нуб. В команде добавления книги, там где создаётся новая книга и отправляется в Edit(пользовательского диалога), новой книге присваивается первая попавшаяся категория из репозитория книг и тогда всё сохраняет. Т.е. БД добавит книгу только по существующей категории (это что то типа ключа что ли). Т.е. по грамотному, при добавлении книги надо запрашивать категории и выбирать нужную для книги, а только потом добавлять.
@ToadkillerGold Жыл бұрын
Здравствуйте. А можно ли как-то в репозитории использовать сущности с составным первичным ключом? Репозиторий из MathCore.EF7. Физически то можно его туда засунуть, но поставщик бд кричит о том, что не поддерживает такой тип(. Сущность первичного ключа ,например, класс с двумя свойствами.
@ichbinschlange Жыл бұрын
Здравствуйте. Почему на 33:46 Dispose вызывается с false? Случится return и метод не будет вызван. В этом есть какой-то скрытый смысл?
@Gifeest Жыл бұрын
Здравствуйте, подскажите как самому создать шаблон для генерации кода? 56:44
@Shmachilin Жыл бұрын
Какого кода?
@Gifeest Жыл бұрын
На 56:44 вы начинаете писать notyfprop, потом говорите что пока вручную, потом будете это делать автоматически. Вот именно этот шаблон как создать? @@Shmachilin
@РоманДейкаловский Жыл бұрын
Вот несправедливость. Действительно годный контент и на тебе - 439 лайков. А какой то чижик со словарным запасом Эллочки (и скорее всего в наколках) зачитывающий доку по несколько сотен тысяч имеет. Дикий народ ещё совсем.
@BrooDRay Жыл бұрын
Огромнейшее спасибо за плейлист по WPF! Есть ли у вас аккаунт на бусти? Возможно кто-то захочет вас отблагодарить монеткой, если у них есть лишняя)
@golibxayrullayev1353 Жыл бұрын
крутые видоси! спасибо! когда два раза на меню нажимаешь content исчезает как эта исправить?
@КонстантинИванюк-ы4м Жыл бұрын
**ейшее видео. ультра круто. самое полезное среди всего интернета по wpf
@riyazvagapov1449 Жыл бұрын
Павел, здравствуйте. А что думаете насчет вышедшего MAUI?
@СтепанРухов-х3л Жыл бұрын
Павел, огромное спасибо! Ваше видео помогло мне хоть как то влиться в тему MVVM. Но у меня возникал проблема, и я бы был очень благодарен, если бы вы смогли помочь при решении нее. При последовательном написании кода вместе с видео на строке _db.Database.Migrate() в реализации класса DbInitializer выкидывается исключение System.ArgumentException: "Host can't be null", хотя у вас его нет. Много просмотрел источников, но как решать данную проблему не нашел. База данных создается, но выходит добавлять новые данные в нее я не могу. Заранее спасибо!
@ДимаДмитрий-е1к Жыл бұрын
Хорошее обучающее видео) На счёт cuda, cudnn сейчас не так просто установить. Нужно зарегистрировать email через VPN чтобы регистрация была как бы с той страны на которой нет снкц. И заходить через VPN на закачку Ещё совместимость cuda и CUDnn
@TbIPDblM Жыл бұрын
<3 когда сразу легкий бдсм, чтоб не казалось изи, а потом как то едешь :D