2011-12-09 201 views
2

我有一個問題,我在WP7應用程序中使用encode4fun dll來顯示彈出消息。 我使用:MessagePrompt在第一次啓動應用程序時崩潰

  1. Micrsoft.Phone.Controls.Toolkit
  2. Coding4fun.Phone.Controls

在首次啓動時對設備部署其崩潰說,值不能爲空(參數名元素)而在仿真器上運行良好。我試過這個DLL的最新版本,但結果是一樣的。

雖然添加最新版本1.4.8的Micrsoft.Phone.Controls.Toolkit會給出警告,添加Silverlight庫可能會導致意想不到的後果。

雖然我試過其他版本的這個DLL仍然沒有成功。

我在堆棧跟蹤變得異常

  1. Clarity.Phone.Extensions.DialogService.InitializePopUp
  2. Clarity.Phone.Extensions.DilaogService.Show

基本上我使用內部的彈出mainpage.xaml(第一頁)的構造函數在InitializeComponent()之後,並且在部署時首次啓動時引發null引用類型,但是應用程序正在安裝。再次如果我在設備上運行應用程序,那麼它顯示正確。 我的代碼是:

notificationPrompt = new MessagePrompt(); 
notificationPrompt.Title = "Notification" 
notificationPrompt.Body = ""; 
notificationPrompt.ActionPopUpButtons.Clear(); 
Button btnDisclaimer = new Button() { Content = "Yes" }; 
btnDisclaimerContinue.Click += new RoutedEventHandler(btnNotificationPromptYes_Click); 
Button btnDisclaimerCancel = new Button() { Content = "No" }; 
btnDisclaimerCancel.Click += new RoutedEventHandler(btnNotificationPromptNo_Click); 
notificationPrompt.ActionPopUpButtons.Add(btnDisclaimerContinue); 
notificationPrompt.ActionPopUpButtons.Add(btnDisclaimerCancel); 
notificationPrompt.Show(); 
+0

我用最新的coding4fun庫試過這個代碼,它工作正常,也許你可以提供更多的代碼或細節。參考警告,是否可以嘗試包含Silverlight工具包而不是Windows Phone工具包?這兩個都可以在http://silverlight.codeplex.com/ –

+0

找到這工作正常模擬器,但在設備中引發空引用異常,並且還添加最新版本的dll,它是版本1.4.8,它在添加微軟時發出警告。 phone.controls.toolkit(silverlight警告)。 – pan4321

+0

基本上我在mainpage.xaml(第一頁)的構造函數內使用InitializeComponent()後面的彈出框,並且在部署時首次啓動時引發空引用類型,但是安裝了app。再次如果我在設備上運行應用程序,那麼它顯示正確。 – pan4321

回答

-1

我認爲這是更好的移動所有這些代碼的構造函數外,並把它放在Loaded事件中(時發生FrameworkElement的已經建成,並添加到對象樹:http://msdn.microsoft.com/en-us/library/ms596558(vs.95) )中的PhoneApplicationPage類的,或者只是覆蓋的OnNavigatedTo方法:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    // What you want here... 
    ... 
} 

很多時候,當你有一個的PhoneApplicationPage的構造異常,就看不出來,使得調試更加困難和煩人......

+0

該任擇議定書表明他*是*收到異常;雖然標準(和推薦)的做法是不把任何基於邏輯的代碼放在構造函數中,但你的答案太像評論,並且不能解決問題。 – newfurniturey