Изменение видов региона в Silverlight с помощью Prism - PullRequest
4 голосов
/ 06 февраля 2010

Я изучал Prism и Silverlight и сейчас пытаюсь создать простое приложение, но наткнулся на загадку ...

У меня есть оболочка с 2 ContentControls, «MenuRegion» и «ContentRegion». Я хочу, чтобы он работал, чтобы пользователь щелкнул элемент в «MenuRegion», а затем в ContentRegion отобразится оценочное представление, заменив то, что было ранее в представлении (все представления находятся в собственных проектах, как работают над разными людьми). Все представления для отображения в области содержимого будут отличаться.

Я не знаю, как этого добиться с помощью модели Prism (я могу сделать это, если захочу, но в View.cs будет много кода и я хотел бы сделать это правильным образом). Все сэмплы, которые я там нашел, используют элемент управления Tab и загружают все модули одновременно, чего я не пытаюсь достичь. Есть ли какая-то конкретная схема, которую я должен изучить, или какие-либо примеры, о которых вы знаете, которые могут указать мне правильное направление?

1 Ответ

1 голос
/ 06 февраля 2010

Попробуйте.

Используйте RegionManager, чтобы добавить представление в ваш регион:

regionManager.AddToRegion("ContentRegion", new MyViews.View1());

Затем, когда вы захотите заменить это представление, вы можете удалить его:

regionManager.Regions["ContentRegion"].Remove(view);

Или прокрутить представления в регионе и удалить их все:

    foreach (var view in regionManager.Regions["ContentRegion"].Views)
    {
        regionManager.Regions["ContentRegion"].Remove(view);
    }

Ваша модель представления будет хорошим местом для размещения такого рода кода. Используйте Unity для добавления менеджера региона в конструктор модели представления.

...