|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|||||||||||
Рисую линию без MVVM все ОК. C MVVM произвольный старт30.10.2021, 12:59. Показов 9686. Ответов 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
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты 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
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|