2013-02-05 74 views
1

我想將navigationservice傳遞給我的用戶控件。 在我的應用程序側將NavigationService傳遞給Usercontrol windows phone 7

<myControl:Test NavigationService="{Binding NavigationService}"/>/> 

在我的用戶CS側

public NavigationService NavigationService { get; set; } 

但dosent似乎只要加載運行,應用程序崩潰。

+0

除了答案。如果你在userControl中調用'NavigationService.Navigate'方法,那會導致崩潰。這與頁面導航隊列有關。如果按下「返回」按鈕,應用程序應該返回到上一頁 - 您已經瀏覽的那一頁。所以你不能從userControl導航。爲了簡化,調用NavigationService.Navigate()等於phoneApplicationPage.NavigationService.Navigate()調用,其中phoneApplicationPage是頁面,從您要導航的位置開始。 – Olter

回答

1

這真的很糟糕......好的,你沒有提到這個,但我想,你試圖解決從UserControl導航到其他頁面/ uc的問題(這是真的嗎?)。

一對夫婦的編輯:

  1. 首先,你不需要類的對象使用 NavigationSevice。
  2. 其次,NavigationService通常與頁面一起使用。

如果你真的希望與用戶控件使用它,你應該轉頁控制的一個實例。但是,根據我的經驗,通常這不是必需的。我寧願推薦這樣做:

在你的UserControl中,你肯定會控制點擊/點擊事件。無需在用戶控制類中描述其邏輯。當您將用戶控件添加到頁面時,您應該在那裏聲明它。像:

someUserControl.buttonNavigate.MouseLeftButtonUp += new MouseButtonEventHandler(buttonNavigate_Click); 

然後你可以使用導航服務。

NavigationService.Navigate(new Uri(...)); 

這是最簡單的解決方案。希望能幫助到你。

還有一些,但我希望這一個將解決這個問題。

+0

我不想給用戶控件導航到下一個頁面。實際上,我想要顯示一個小圖像欄上的點擊,我想從另一個來源打開一個更大的全屏圖像(有點像廣告)。我對如何處理它感到困惑,因爲我無法載入另一個視圖 –

+0

您能否定義,您需要更精確地做什麼?首先,你講述了**用戶控制**和** NavigationService **。現在,你講述了圖像,但是我看不出它如何與userControl和NavigationService連接。對不起,但我不明白這一點。請編輯你的問題。 – Olter

+0

我解決了這個問題,謝謝 –