2013-12-03 6 views
0

Я использую Catel и DevExpress DockLayoutManager в своем приложении. Я хотел бы использовать этот код, чтобы автоматически создать View Model:
http://gyazo.com/147dff382d16e08cee0270ac20c6b330 http://gyazo.com/24a4ec62e90d49b4e08e3ba1d1790b59Catel и DevExpress DockLayoutManager не работают вместе

, но я не могу запустить приложение после компиляции.
Если мы заменим catel:UserControl на UserControl то все работает отлично: http://gyazo.com/b69a0257d992bb13c19813c055d47d92

, но идет без не создается ViewModel.

Я хотел использовать IUserControl, но это не помогло. UserControlLogic не воспринимает DocumentPanel как UserControl:
http://gyazo.com/e5596231404c054e459db06446ab57ee.

ответ

0

Причина этого заключается в том, что DocumentPanelEx (и, следовательно, DocumentPanel) не является результатом UserControl. Я буду исследовать, можно ли использовать базовый класс в ContentControl вместо UserControl (но тогда возникает вопрос: из какого класса получается DocumentPanel?). Если вы хотите, чтобы мы провели расследование, добавьте проблему в отставание по адресу http://www.catelproject.com/support/issue-tracker/

Теперь вы должны поместить UserControl как root в DocumentPanelEx. Я знаю, что это не идеальная ситуация, но пока она решит ваши проблемы.

0

Я рассмотрел ваш проект с билета Catel and DevExpress DockLayoutManager don't work together и кажется, что проблема вызвана Catel UserControl. При запуске он пытается рекурсивно найти InfoBarMessageControl в визуальных и логических деревьях. Если такого контроля нет и визуальное дерево велико, эта операция может занять много времени. Я предлагаю вам обернуть DockLayoutManager в InfoBarMessageControl, это должно решить проблему.

+0

Вы также можете установить SkipSearchingForInfoBarMessageControl. Как вы можете видеть в обновленном исходном коде (reuploaded мной), App.xaml.cs содержит настройки по умолчанию, чтобы пропустить поиск: Catel.Windows.Controls.UserControl.DefaultCreateWarningAndErrorValidatorForViewModelValue = false; Catel.Windows.Controls.UserControl.DefaultSkipSearchingForInfoBarMessageControlValue = true; –

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