Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
2 / 1 / 1
Регистрация: 21.01.2020
Сообщений: 78
WPF

Перетаскивание пользовательских окон (и других элементов) не нарушая MVVM и привязка данных к Canvas

28.05.2020, 23:50. Показов 3555. Ответов 20
Метки mvvm, wpf (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу приложение для моделирования

Есть два окна которые должны быть запущенны два потока (чтобы отрисовка не мешала расчётам), одно окно, основываясь на настройки, производит расчёты, а второе окно при помощи Canvas отображает их. Хочу убрать привычную рамку (windowstyle) у окна и сделать свою для возможности отображения некоторых данных (например, итерации) и отдать максимум места canvas на отображения итерации, но хочу оставить возможность изменять размер окна и перемещать его, как это можно сделать не нарушая mvvm? Управление окном (открыть/закрыть/сменить итерацию) хочу оставить на первом окне с настройками.

Так как кода нет пока, есть вопрос, могу ли я таким же образом, что с itemscontrol, нарисовать несколько точек на canvas (путём привязки), если могу, то какие могут возникнуть проблемы или какие есть нюансы? (не хочу писать в файле .xaml.cs, но мне кажется, придётся)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.05.2020, 23:50
Ответы с готовыми решениями:

MVVM паттерн и привязка данных
Доброго времени суток! Относительно недавно начал изучать данный паттерн и технологию в целом. Не могу привязать данные к datagrid ...

Перетаскивание элементов на форме и привязка к элементу
На форме есть фигура (Bevel) и компонент PaintBox. Нужно сделать так, чтобы компонент PaintBox можно было перетаскивать и чтобы когда его...

Массив. Расположить в порядке возрастания простые числ, не нарушая порядка следования других элементов
Массив А(N) считаем как заданный пользователем.

20
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
16.06.2020, 18:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от furrycat Посмотреть сообщение
Не нарушит ли это mvvm?
Конкретно, такая реализация - не нарушит.
MVVM определяет правила разделения ДАННЫХ и их ПРЕДСТАВЛЕНИЯ.
В данном случае, весь ваш код (XML и C# в CB) работает только с Представлением, поэтому нарушения MVVM нет.
Важно чтобы и в методе DragMove не было обращения непосредственно к Данным.
Но при необходимости можно з Контекста Данных извлечь VM и вызвать какой-то из её методов, который уже, в свою очередь, обратится к Модели и изменит Данные.

Но для "прозрачности", "читаемости" кода рекомендуется всё таки не использовать CB окна.
Небольшие обработчики можно задать прямо в XAML.
Что-то более глобальное, объёмно в AP-свойствах или в Behavior.

Добавлено через 5 минут
Пример задания обработчика в XAML Как постоянно проверять свойство контрола
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.06.2020, 18:16

Привязка данных без использования паттерна MVVM
Здраствуйте, интересует вопрос как сделать такую привязку. Имеется класс Game.cs: class Game: DependencyObject { ...

[mvvm] Привязка данных которые изменяются из другого потока
здравствуйте, есть проблема следующего рода: есть поток(Task) который получает данные из сети и меняет viewmodel, но форма отказывается...

[UWP/MVVM] Привязка к изменению данных в классе ViewModel
Всем доброго времени суток! Начал изучать MVVM, вроде как все более-менее понятно, но вот как сделать так, чтобы при изменении данные во...

Работа с canvas, добавление дочерних элементов mvvm
Доброго времени суток. Изучаю c# wpf и паттерн mvvm, на примере создания простенькой игры "игра в жизнь". Возникли некоторые...

Как открывать следующую форму правильно не нарушая принцыпы WPF(MVVM)?
Как открывать следующую форму правильно не нарушая принцыпы WPF(MVVM)? К примеру открывается форма в которой вводиться имя пользователя и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
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. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
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. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru