2009-12-17 100 views
1

我正在構建基於Silverlight導航應用程序模板的Silverlight 3.0應用程序。我遇到的一個路障是在頁面之間進行通信。例如,我在一個頁面中,我想啓動另一個頁面併發送一些數據。我對如何做到這一點感到不知所措。如何在Silverlight 3.0應用程序中的視圖之間進行通信?

任何想法?

+0

您的意思是從發起頁面發送一些數據或向服務器發送請求並讓新頁面得到響應? – serialhobbyist

+0

哦,你在使用MVVM嗎?和/或WCF RIA服務? 我已經閱讀了您最近的幾個問題 - 我還在構建一個Silverlight 3導航應用程序,並且遇到了類似的問題。 – serialhobbyist

回答

1

我發現了一個不涉及太多複雜性的有效解決方案。我正在使用LocalMessageSenderLocalMessageReceiver對象。這些對象的最初目的是在同一個網頁上有兩個Silverlight應用程序與每個應用程序進行對話,但它們同樣有兩個相互對話的視圖。

這個用法非常簡單。有關使用情況,請參閱此example

1

傑西自由有一個很好的blog post關於這一點。我在一個多頁的Silverlight應用程序中使用了我自己描述的技術。

我不確定您是否可以將其應用於Silverlight導航應用程序模板。

+0

這是一篇很好的博文,但它適用於Silverlight 2。 – AngryHacker

1

您有2個選項

  1. 使用發佈/訂閱模式,我還沒有使用過這一點,但在某些情況下是有用的,我不認爲這會雖然解決烏爾問題。
  2. 使用請求參數,基本上當你導航到新的觀點,稱它像這樣

    NavigationService.Navigate(新的URI( 「/ HomePage.xaml HomePageId = 12?」,UriKind.Relative));

你可以拍一些的String.Format在那裏,使其整潔,但你的想法,然後在新的視圖中,使用string queryParam = HtmlPage.Document.QueryString["HomePageId"];在頁面加載得到的,你要顯示的信息的ID。

這應該做到這一點。

相關問題