XAML-наследование, повторное использование кода, оптимизация - PullRequest
2 голосов
/ 09 февраля 2011

В моем настольном приложении WPF4 все окна имеют одинаковую структуру - верхний и нижний колонтитулы с некоторыми главными меню и отметками об авторских правах;левое меню навигации и тело (центр экрана), где я показываю данные, главная панель инструментов и т. д. Блок тела - это единственный блок, который изменяется во всех окнах, например, в окне с учащимися я показываю DataGrid с данными учащихся, в окнес новой формой курса пользователь может заполнить форму и отправить ее в БД.Все это находится в секции Body окон.

Чтобы улучшить возможность повторного использования кода, я использую наследование кода C #, где я храню все основные оконные функции в GeneralWindow, и все остальные окна расширяют этоclass.

Мой вопрос: могу ли я использовать ту же технику, чтобы уменьшить копию одного и того же кодового блока в XAML-части окна?На данный момент каждый класс окна имеет одинаковые блоки кода XAML (например, меню слева, заголовок, нижний колонтитул).Как я могу уменьшить количество копий кода и использовать ту же технику, что и в случае с C #?Возможно ли наследовать XAML-класс (.xaml), чтобы я мог определить все базовые вещи в одном классе, а все остальные просто расширят / унаследуют дизайн этого класса?Это увеличит возможность повторного использования кода.

1 Ответ

1 голос
/ 09 февраля 2011

Вы должны создать одно окно и поместить в него рамку.Затем динамически загружайте страницы в кадре.

См. Обзор навигации

...