|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
||||||||||||||||
ProgressBar в MVVM02.04.2022, 20:36. Показов 9557. Ответов 86
Метки нет (Все метки)
Здравствуйте! Помогите, пожалуйста, нужно сделать индикатор выполнения (ProgressBar) какого-либо процесса в MVVM в Авалонии. Правильно, ли я делаю?
0
|
||||||||||||||||
| 02.04.2022, 20:36 | |
|
Ответы с готовыми решениями:
86
ProgressBar в MVVM
Консольный progressbar или progressbar в TMemo |
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 06.04.2022, 19:25 [ТС] | |
|
limeniye, отображается окно с кнопкой, она запускается, создаются файлы, а вот ProgressBar пока не появляется...
Если еще есть немного времени, посмотрите пожалуйста прикрепленный проект
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
||
| 06.04.2022, 19:37 [ТС] | ||
|
Добавлено через 6 минут limeniye, я нашла свою ошибку, оказывается метод CreateFilesExecute не вызывался, в одном случае было написано СreateFiles, а в другом CreateFilesExecute. Теперь все работает! Еще раз благодарю!!!
0
|
||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 06.04.2022, 19:51 | |
|
Sun1212, супер.
Я хотел бы сделать пару замечаний Вашему проекту. 1. FileManagerService, как я уже говорил, это уровень Model. Поэтому он должен лежать не в папке ViewModels, а в папке Models. 2. Модели вообще лучше держать в отдельных проектах, ибо у Вас может случиться зацикливание связей. Это когда у Вас есть 2 проекта, но Вы не можете задать зависимости одного к другому. У Вас просто простая задача и программа, поэтому такой проблемы не возникает. Но если я попрошу Вас перекинуть файл FileManagerService в проект А -- будет ошибка. 3. Класс MainWindowViewModel наследует ViewModelBase, но это излишне. Если Вы удалите ViewModelBase -- ничего не изменится. ViewModelBase нужен, если у Вас в классе есть свойства. Например как в классе FileManagerViewModel есть свойство Progress, и вот ради этого свойства мы и наследуем ViewModelBase. Если никаких свойств нет -- то и наследование излишне. 4. Я заметил, что Вы задаёте DataContext для MainWindow в двух местах: в классе App и в конструкторе самого MainWindow. В одном из этих мест можно удалить эту строку. Добавлено через 1 минуту 5. Если отправляете архив -- удаляйте папки bin, obj, .vs. Эти папки генирируюся при сборке приложения сами. Они лишь увеличивают вес архива.
1
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 06.04.2022, 19:55 | |
|
Если Вы разобрались, можете глянуть как это сделано у меня.
ProgressBarMVVMStudySolution.7z
1
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
||
| 06.04.2022, 20:51 [ТС] | ||
|
0
|
||
| 06.04.2022, 21:03 | |
|
Не по теме: Sun1212, я не читал книги.
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 07.04.2022, 21:14 [ТС] | |
|
limeniye, можно еще вопросик, если сделать модель (класс FileManagerService) не статической, то почему-то не отображается Progressbar... Что я делаю не так?
Прикрепляю проект
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||||||||||||||||||||||||||||||
| 07.04.2022, 21:43 | |||||||||||||||||||||||||||||||
|
Sun1212, всё верно.
Тут нужно понимать в чём смысл статического класса и его отличие от не статического. Приведу простой пример не статического класса:
Но когда класс статический, то сам класс это и есть объект, грубо говоря. И его содержимое будет для всего проекта одинаковое. Приведу простой пример:
Далее я в одном проекте изменяю его свойство:
В случае же не с статическим классом:
Вам придётся в двух проектах создать два разных объекта этого класса:
В Вашей задаче тоже самое: Вы работаете с двумя разными объектами никак не зависящими друг от друга. Добавлено через 2 минуты Альтернативы? Можно, конечно, сделать также и без статического класса, чтобы всё работало, но я не хотел Вам забивать голову лишней информацией. Если же Вы ходите создать один объект для двух проектов, грубо говоря, но без статического класса, то придётся использовать DependencyInjection. Это не сложно, но это отдельная тема для обсуждения.
1
|
|||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 07.04.2022, 21:53 [ТС] | |
|
0
|
|
| 07.04.2022, 21:56 | |
|
Не по теме: Sun1212, обращайтесь
0
|
|
|
Модератор
|
||||||||||||
| 07.04.2022, 22:09 | ||||||||||||
|
Синглтон или предоставления дефолтного экземпляра. Синглтон:
1
|
||||||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||||||
| 07.04.2022, 22:17 | ||||||
|
Согласен с Элд Хасп. Но по сути одно другому никак не мешает.
Я точно не помню как там, но что-то вроде следующего:
0
|
||||||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 11.04.2022, 21:01 [ТС] | |
|
limeniye, здравствуйте! Вам не приходилось работать с пакетами для ProgressDialog или ProgressBar в Авалонии?
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 11.04.2022, 21:54 | |
|
Sun1212, здравствуйте. Я с Авалонией вообще только из-за Ваших тем имею хоть какой-то опыт.
С прогрессбаром вообще до этого никогда не работал, поэтому я даже Ваш вопрос не понял. Возможно Вам что-то может подсказать Элд Хасп.
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 12.04.2022, 04:44 [ТС] | |
|
Элд Хасп, да, например, пакеты ProgressDialog, ProgressBarCSharpCore и другие
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 12.04.2022, 10:50 | |
|
Sun1212, мне больше нравится писать свои контролы. Поэтому я Вам с сторонними бибилотеками, увы, подсказать не могу.
0
|
|
|
Модератор
|
||
| 12.04.2022, 11:55 | ||
|
Они далеко не все пишутся с ожидаемым для WPF поведением. Но есть много и добротных. Попробуйте сами освоить. Если что не будет получаться - дайте пример Решения через Гит. По возможности посмотрю что можно с эти сделать.
0
|
||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|||||||||||||||||||||
| 15.04.2022, 12:46 [ТС] | |||||||||||||||||||||
|
limeniye, помогите, пожалуйста, сделать кнопку отмены действия ProgressBar. Пост 44 я немного изменила, в окно ProgressWindow добавила кнопку отмены:
в проекте B
0
|
|||||||||||||||||||||
| 15.04.2022, 12:52 | |
|
Не по теме: Sun1212, угу, чуть позже.
0
|
|
| 15.04.2022, 12:52 | |
|
Mvvm
MVVM Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|