2009-12-01 3 views
0

В приложении Silverlight 3.0 есть страница оболочки, которая служит частью навигации для нескольких дочерних элементов управления и других страниц Silverlight. Страницы Silverlight включены в страницу оболочки через объект Frame(). Страницы динамически поворачиваются с помощью файла кода, поэтому в xaml нет прямой ссылки на них.Лучший способ перезвонить/обновить родительскую страницу события?

Как эти динамически включенные страницы возвращаются на страницу оболочки? В настоящее время мы используем события для связи с включенными пользовательскими элементами управления, но это известные события, на которые мы можем подписаться в xaml ... поэтому, если вы предлагаете события, укажите конкретные примеры.

TIA.

ответ

0

Если вы создаете каждый дочерний элемент управления из родительская страница, вы можете использовать делегатов для выполнения этой задачи. Очень общий пример:

public delegate void FunctionDelegate(string ChildControlName); 

В классе родительского контейнера:

public FunctionDelegate EventFunc; 

В родительском контейнере конструктора:

 EventFunc = DoSomeAction; 

Pass EventFunc к объекту ребенка и вызвать в случае необходимости.

0

Я бы рекомендовал использовать призму, разработанную группой образцов и практик.

Призма (через EventAggregator) позволяет выталкивать уведомления от любого источника слушателям указанного вами события. Это довольно круто.

Это видео о связи между видами через Prism: http://channel9.msdn.com/posts/akMSFT/Creating-a-modular-application-using-Prism-v2-Screencast-44--Decoupled-Communication/

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