|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|||||||||||
Рисую линию без MVVM все ОК. C MVVM произвольный старт30.10.2021, 12:59. Показов 9993. Ответов 148
Метки нет (Все метки)
Добрый день всем.
Рисую линию при помощи анимации. Все получилось -рисуется, стирается. Но у нас все задания с MVVM, чтобы ViewModel была Хорошо добавил MVVM light, ViewModel создал, свойства, команду. Блин, при запуске окна начала автоматически рисоваться линия. ![]() Вообще должна с кнопки, как было ранее и планируется. Как такое может быть, если никто и ничто не воздействует на свойство и должно быть false? Или она сама по себе запускается. Так вся разница между двумя проектами - МVVM. Xaml.
VieModel
0
|
|||||||||||
| 30.10.2021, 12:59 | |
|
Ответы с готовыми решениями:
148
Доступ к View без нарушения правил MVVM
|
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|||||||
| 01.11.2021, 20:52 [ТС] | |||||||
можно было закинуть в класс VM, а не отдельный класс Portion находящийся физически в той же VM.
0
|
|||||||
|
Модератор
|
||
| 01.11.2021, 21:14 | ||
|
Нам же в VM нужна коллекция порций (public ObservableCollection<Portion> Portions { get; }), а не один экземпляр. Добавлено через 2 минуты И он не находится "в той же VM". Он находится на том же уровне. А при полной реализации, он будет даже не проекте VM, а в библиотеке VM - там же где будет и интерфейс VM, кторый в данном случае не создаётся из-за упрощения реализации.
0
|
||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|||||||
| 01.11.2021, 21:18 [ТС] | |||||||
ObservableCollection нужен класс модели. А я могу сделать так: отдельную папку Model, закинуть туда Portion? 2)
0
|
|||||||
|
Модератор
|
||||
| 01.11.2021, 21:28 | ||||
|
При работе с БД (ADO, EF и др.) моделями принято называть сущности отражающие данные БД. А в ООП паттернах ПРИЛОЖЕНИЙ (MVC, MVP, MVVM и др.) Модель - это слой содержащий Бизнес Логику, в том числе и Репозиторий работающий с БД. Поэтому, раз мы говорим о реализации MVVM, то ObservableCollection нужно типизировать какой-то сущностью. Это сущность должна отражать отдельную порцию. Для этого и был создан класс Portion. Мне так привычнее, удобнее. Когда свойств очень много, все они сопровождаются тегами XML документации, то поля среди них мешают мне для восприятия кода. Добавлено через 3 минуты Если выделять Модель в отдельный слой, то для "общения" с ним нужно создавать DTO типы. Portion - имеет реализацию INPC, поэтому он не является DTO типом. Это сущность уровня VM.
0
|
||||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
||||||
| 01.11.2021, 21:38 [ТС] | ||||||
|
3) не знал, что так буквально можно свойствам значения задавать.
0
|
||||||
|
Модератор
|
||
| 01.11.2021, 21:44 | ||
|
Новый тег - это вызов безпараметрического конструктора типа. Атрибут - задание значения его свойству. Добавлено через 3 минуты Вот если потребуется обеспечить "резиновость", то есть чтобы размеры элементов динамически менялись при изменении размеров Окна, то придётся немного помудрить: - или использовать ViewBox для автомасштабирования; - или использовать Proxy или Behavior для передачи значений только для чтения из Окна в VM.
0
|
||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
||||||||||||
| 01.11.2021, 21:49 [ТС] | ||||||||||||
4)
Какую роль таймер играет?
0
|
||||||||||||
|
Модератор
|
||||
| 01.11.2021, 23:16 | ||||
|
Лучше присваивать начальные значения свойствам (отличные от дефолтным) в конструкторе класса, тогда гарантируется, что логика свойства правильно отработает. Паузу можно и ноль поставить. Я просто привык ставить одинаковые, поэтому сделал так "на автомате". Если это текущий материал, то увеличивается его длина. Иначе - увеличивается начальное смещение. Посмотрите логику метода private void OnTimer(object state).
0
|
||||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
||||||
| 02.11.2021, 08:54 [ТС] | ||||||
|
5)
Тут для меня просто Америка открыта. До этого момента считал, что IsСhecked это обратная связь для управления самой toogglebutton, а не для изменения свойства в VM. ![]() Я правильно понимаю здесь togglebutton воздействует на свойство IsMaterialReceiving?
0
|
||||||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|
| 02.11.2021, 20:13 [ТС] | |
|
Элд Хасп, добрый вечер,
потестировал... и вспомнил! Нужно еще свойство, скажем, MaterialIsUnloading меняющееся с false на true когда материал или его кусок достигает крайней правой точки конвейера и соответственно меняется на false, когда заканчивается.
0
|
|
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|
| 02.11.2021, 21:12 [ТС] | |
|
0
|
|
|
Модератор
|
|||||||||||||
| 02.11.2021, 21:28 | |||||||||||||
Сообщение было отмечено Berendom как решение
РешениеКакая жесть? Там всего пара строк:
2
|
|||||||||||||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|||
| 02.11.2021, 21:44 [ТС] | |||
Я ума не приложу как это все рисует линию, а вы мне
0
|
|||
|
28 / 16 / 2
Регистрация: 09.05.2020
Сообщений: 149
|
||||||||||||||||
| 02.11.2021, 22:48 | ||||||||||||||||
|
Элд Хасп,
Здрасте! Berendom привет! что-то с синтаксисом парюсь.
и datacontext вот так?
0
|
||||||||||||||||
|
Модератор
|
||||
| 02.11.2021, 23:15 | ||||
|
Вам по заданию надо нарисовать представление порций материалов на конвейере. Представлением такой коллекции будет пунктирная линия. Для пунктирной линии надо задать начало каждого штриха и его длину. Чтобы сделать это ещё и динамичным, надо добавить штамп времени. В результате получаем простой тип с тремя свойствами. Их длиной и положением управляем в событии таймера. Одной кнопкой создаём новый штрих. Второй - включаем отключаем выполнение метода таймера. Добавлено через 1 минуту А что находится в свойстве locator._MainWindowViewModel?Добавлено через 2 минуты locator._MainWindowViewModel?
Задайте тот в котором у вас находится класс Portion.
0
|
||||
|
28 / 16 / 2
Регистрация: 09.05.2020
Сообщений: 149
|
|||||||
| 02.11.2021, 23:25 | |||||||
|
но у меня нет vm: префикса, так как datacontext сделан так.
0
|
|||||||
|
Модератор
|
||
| 02.11.2021, 23:31 | ||
|
Если в том же, что и Окно, то значит вместо vm используйте local. Добавлено через 1 минуту Задайте в ресурсах окна <Portion/> без префикса.Студия сама подскажет какой нужно использовать префикс. Добавлено через 44 секунды Потому из ресурсов удалите эту строку, а префикс используйте в DataTemplate.
0
|
||
| 02.11.2021, 23:31 | |
|
Mvvm MVVM
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|