平臺:如何將數據通過Frame.Navigate在Silverlight發送到導航到第4頁
的Silverlight 4/.NET 4
背景:
我有一個頁面它由兩部分組成。左側是樹形視圖,右側是內容區域。當我選擇一個樹項目時,應根據樹項目的類型將相應的UserControl頁面加載到頁面的右側部分。
我正在使用XAML中定義的Frame對象。 當用戶選擇樹形視圖項目時,我解析項目的類型,然後導航到爲該類型定義的頁面。
但是,Frame.Navigate是一個異步方法,所以如果我在導航之後嘗試獲取框架的內容,那麼框架還沒有導航,所以我沒有任何東西或最後加載的頁面。
contentFrame.Navigate(new Uri("/PageA.xaml", UriKind.Relative));
PageA page = contentFrame.Content as PageA;
// page here is either null or a previously opened page
問題:
我需要發送一些數據(存儲在樹視圖項的標籤)的頁面被導航到的唯一Frame.Navigate過載是異步的(沒有回調)。 如何將一些數據發送到導航頁面?有沒有其他技術來完成我所需要的?
感謝您的聯繫。但是,我不想傳遞一些原始數據,我需要傳遞一個實體對象。我想有一種方法可以將對象序列化爲一個字符串,但我認爲這不是一個好主意。如果導航服務不支持這種數據傳輸,我想我會使用一個靜態對象。 –
你是否在爲你的開發使用任何框架?如果您查看Prism或MVVMLight等選項,這些框架提供了不同視圖模型之間通信的分離方式。 Prism使用EventAgreegator而MVVMLight使用Messenger。也許你可以看看那些幫助。實際上,在我之前工作過的一個WOF項目中,我們只使用了Prism中的EventAgreegator。 –