C# MessagePrompt在首次启动应用程序时崩溃
我有一个问题,我正在WP7应用程序中使用coding4fun dll来显示弹出消息。 我正在使用:C# MessagePrompt在首次启动应用程序时崩溃,c#,.net,silverlight,windows-phone-7,C#,.net,Silverlight,Windows Phone 7,我有一个问题,我正在WP7应用程序中使用coding4fun dll来显示弹出消息。 我正在使用: Micrsoft.Phone.Controls.Toolkit 编码4fun.Phone.Controls 在第一次启动设备上的部署时,它会崩溃,说值不能为null(parameter name元素),而在emulator上运行正常。我尝试了这个dll的最新版本,但结果是一样的 添加最新版本1.4.8的Micrsoft.Phone.Controls.Toolkit时发出警告,添加silverlig
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();
我认为最好将所有这些代码移到构造函数之外,并将其放在PhoneApplicationPage类的已加载事件(在构建FrameworkElement并将其添加到对象树时发生:)中,或者只重写OnNavigatedTo方法:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
// What you want here...
...
}
通常,当PhoneApplicationPage的构造函数中出现异常时,它们将不会显示,从而使调试变得更加困难和烦人……我认为最好将所有这些代码移到构造函数之外,并将其放在加载的事件中(在构建FrameworkElement并将其添加到对象树中时发生:))或只重写OnNavigatedTo方法:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
// What you want here...
...
}
通常,当您在PhoneApplicationPage的构造函数中出现异常时,它们将不会显示,这使得调试更加困难和烦人…我使用最新的coding4fun库尝试了这段代码,它工作正常,也许您可以提供更多代码或详细信息。提到警告,您是否会尝试包含silverlight工具包而不是windows phone工具包?两者都可以在模拟器上找到,但在设备中抛出空引用异常,并添加最新版本的dll,即1.4.8版,在添加microsoft.phone.controls.toolkit(silverlight警告)时发出警告。基本上,我在mainpage.xaml的构造函数中使用该弹出窗口(第一页)在InitializeComponent()之后,它在部署时第一次启动时抛出null引用类型,但应用程序正在安装。同样,如果我在设备上运行应用程序,它就会正确显示。那么,您是否尝试将提示符.Show()移动到加载的事件中?谢谢Jan K,非常感谢您提醒我加载的事件。我在其他页面中使用Loaded,但由于在第一个页面中并没有要加载的数据,所以我直接调用构造函数中的方法。我将整个方法从构造函数移动到加载的事件,它工作得非常好。我认为问题在于,在弹出窗口出现之前,没有创建弹出窗口的根可视对象,因此引发空引用异常。一次又一次谢谢你,伙计!!我用最新的coding4fun库尝试了这段代码,效果很好,也许您可以提供更多代码或详细信息。提到警告,您是否会尝试包含silverlight工具包而不是windows phone工具包?两者都可以在模拟器上找到,但在设备中抛出空引用异常,并添加最新版本的dll,即1.4.8版,在添加microsoft.phone.controls.toolkit(silverlight警告)时发出警告。基本上,我在mainpage.xaml的构造函数中使用该弹出窗口(第一页)在InitializeComponent()之后,它在部署时第一次启动时抛出null引用类型,但应用程序正在安装。同样,如果我在设备上运行应用程序,它就会正确显示。那么,您是否尝试将提示符.Show()移动到加载的事件中?谢谢Jan K,非常感谢您提醒我加载的事件。我在其他页面中使用Loaded,但由于在第一个页面中并没有要加载的数据,所以我直接调用构造函数中的方法。我将整个方法从构造函数移动到加载的事件,它工作得非常好。我认为问题在于,在弹出窗口出现之前,没有创建弹出窗口的根可视对象,因此引发空引用异常。一次又一次谢谢你,伙计!!OP声明他正在接收一个异常;虽然不在构造函数中放入任何基于逻辑的代码是标准(也是建议的)实践,但您的回答感觉太像是一个注释,对问题没有帮助;虽然不在构造函数中放入任何基于逻辑的代码是标准(也是推荐的)实践,但您的回答感觉太像是一个注释,对这个问题没有帮助。