Вопрос

Я, вероятно, смешиваю некоторые обязанности (и, возможно, даже терминологию) здесь, но я не могу полностью обернуть голову вокруг этого.

Существует ли какие-либо отношения между командным рисунком и командами, найденными в MVVM Light (и, следовательно, Aswell в WPF)? Я бы очень хотел реализовать какой-то механизм отменить / повтора, но не может совсем выяснить, есть ли «легкий путь MVVM».

И если это не относится к MVVM Light, как я мог бы приблизиться к команду с отменой / повторением в «RAW», не работая против MVVM Light WPF?

Это было полезно?

Решение

Команда в MVVM Light и WPF в целом представляет собой способ инкапсулировать произвольные наборы функциональности в одном объекте и интерфейсе, а также для провода любого количества элементов пользовательского интерфейса для выполнения этого действия.

Эти команды могут быть включены в внедрение командной шаблоны функциональности UNDO / REDO, но вам нужно больше.

Вы можете свернуть свой собственный командный стек, который является маршрутом, который я предпринимал в своем текущем проекте WPF (используя призму).

По сути, это смещение мышления, где каждое изменение, которое пользователь может сделать через интернет-интерфейс

  1. завернут в команду
  2. имеет соответствующую команду отменить
  3. Удачается в стек

Есть также проекты с открытым исходным кодом, которые помогут с этим, в том числе http://undo.codeplex.com/, который является боковым проектом Кирилла Осеенкова, член команды Visual Studio.

Другие советы

Я реализовал UNDO / REDO для приложения WPF и публиковать свой код Undo / Redo для http://muf.codeplex.com/.

Я рассмотрел попытку рекомендуемого подхода к использованию командной структуры для инкапсуляции логики. Кажется, хорошо на бумаге, но в моем случае казалось, что это казалось очень сложным, чтобы выяснить, как поместить каждое действие в команду, которая может надежно отменить / повторить набор изменений. Вместо этого я принял подход «мониторинга» базовой модели для изменений, а затем сохранение этих изменений в стеке отмены. Это вроде как командная модель, но в подходе «снизу вверх». Действия отмены «выпадают» в результате изменения модели.

Действия собраны путем перехвата изменений в урегулированных моделей, хранят их в единицу изменений с делегатами для удаления / повторной обработки изменений, а затем вкладывать это на стопку изменений. Библиотека MUF включает логику для управления стеком, создавая единицу изменений и многое другое.

Комментарии и вопросы приветствуются на сайте CodePlex ( http://muf.codeplex.com/ ). Вы также найдете полную документацию и пример приложений.

Вы также можете получить его через Nuget. Просто ищите «MUF» или «Мониторированную структуру отменить». Он включает в себя поддержку Silverlight 4.0, а также .NET 3.5, 4.0 и WP7.

Я не знаю о какой-либо неотъемлемой функциональности отменить / повторению в MVVM или WPF, я боюсь.

MVVM Light - очень хороший легкий инструментарий для быстрого внедрения только MVVM. Любые дополнительные модели, которые вам придется реализовать себя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top