2013-09-13 3 views
9

Неужели кому-нибудь удалось успешно загрузить и сохранить макет, используя динамически введенные представления из модулей Prism и AvalonDock?AvalonDock 2.0 PRISM RegionAdapter с компоновкой Сохранение и загрузка?

У меня есть RegionAdapter для AvalonDock DockingManager, который позволяет мне регистрировать представления с помощью RegionViewRegistry в моих модулях Prism, и они обертываются объектами LayoutAnchorable в AvalonDock.

Все это работает отлично, за исключением случаев сохранения и загрузки макета. Когда я добавляю представление из моего модуля, он проходит через RegionAdapter и правильно сериализуется (у меня есть шаг после сериализации, который добавляет некоторый пользовательский XML к выходу, чтобы дать мне некоторую информацию о модулях, которые были отображены, в которых LayoutAnchorable).

Когда я загружаю макет, я реализую LayoutSerializationCallback, устанавливаю содержимое на вид соответствующего модуля и отображает его правильно.

Проблема в том, если я попытаюсь впоследствии сериализовать это, я никогда не получаю LayoutAnchorables, которые были добавлены в десериализацию.

Мне интересно услышать от всех, кто сумел создать AvalonDock + Prism + сохранение и загрузку макета.

Я оценил как Infragistics, так и DockManagers SyncFusion и имел еще меньший успех, ни один из них не обеспечивал обратный вызов десериализации, чтобы я мог вводить свое пользовательское представление.

ответ

2

Я пробовал это примерно год назад и сдался, потому что приложение с образцом MVVM с AvalonDock отлично работало для меня. Я понимаю, что решает адаптер региона, но это не было необходимо для моего приложения.

Я использую PRISM (для услуг и модульности) + AvalonDock (док) + макета экономии в моем личном проекте Wideбез области адаптера. Есть еще несколько проектов - SharpDevelop, Gemini, которые используют AvalonDock + загрузку/сохранение без PRISM. #D создает собственную инфраструктуру для модульности, а Gemini использует среду Caliburn.Micro.

В целом, я предлагаю вам взглянуть на вышеупомянутые проекты с открытым исходным кодом, чтобы узнать, можете ли вы найти что-то полезное от него. Надеюсь это поможет!

+0

Я боялся, что это может быть так; нет встроенной поддержки динамического встраивания содержимого и сохранения компоновки. Спасибо, что ответили. – Dutts

Смежные вопросы