Ich habe ein Pivot-Steuerelement in meiner UWP-App. In Pivot_selectionchanged Ereignis habe ich geschrieben, um Nachrichtendialog zu zeigen.UWP-App stürzt ab, anstatt Nachrichtendialogfeld anzuzeigen
Nach dem Generieren des Pakets der uwp-App, nachdem ich auf Pivot-Element geklickt habe, sollten einige Warnmeldungsdialoge angezeigt werden, aber es wird nicht angezeigt, stattdessen stürzt die App ab. Dies ist nur bei einigen Geräten der Fall. Kann jemand den Grund kennen?
Der Code, den ich geschrieben habe, ist
private void OpenBillPivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
bool Isreturn = false;
bool IsExchange = false;
Isreturn = checkUserPermission(Constants.Return);
IsExchange = checkUserPermission(Constants.Exchange);
if (Application.Current.Resources[Constants.RETURNS].ToString() == Constants.FALSE_CAMELCASE)
Isreturn = false;
else
Isreturn = true;
if (Application.Current.Resources[Constants.EXCHANGES].ToString() == Constants.FALSE_CAMELCASE)
IsExchange = false;
else
Isreturn = true;
if ((txtblStatus.Text == "Cancelled" || txtblStatus.Text=="Draft") && (OpenBillPivot.SelectedIndex == 1 || OpenBillPivot.SelectedIndex == 2 || OpenBillPivot.SelectedIndex == 3))
{
TransactionDetails.Visibility = Visibility.Collapsed;
ReturnDetails.Visibility = Visibility.Collapsed;
ExchangeDetails.Visibility = Visibility.Collapsed;
//SimpleMessageDialog(ResourceLoader.GetForCurrentView().GetString("PLEASE_CLEAR_THE_BILL"), ResourceLoader.GetForCurrentView().GetString("ALERT"));
}
else if (OpenBillPivot.SelectedIndex == 2)
{
if ((txtblStatus.Text == "Pending" && txtblBillDue.Text != Constants.ZERO))
{
ReturnDetails.Visibility = Visibility.Collapsed;
ExchangeDetails.Visibility = Visibility.Collapsed;
SimpleMessageDialog(ResourceLoader.GetForCurrentView().GetString("PLEASE_CLEAR_THE_BILL"), ResourceLoader.GetForCurrentView().GetString("ALERT"));
}
else
{
if (!Isreturn)
{
ReturnDetails.Visibility = Visibility.Collapsed;
SimpleMessageDialog("Access Denied", ResourceLoader.GetForCurrentView().GetString("ALERT"));
}
else
ReturnDetails.Visibility = Visibility.Visible;
}
}
und Code-Dialog Nachricht:
private async void SimpleMessageDialog(string Message, string Title)
{
MessageDialog dialog = new MessageDialog(Message, Title);
dialog.CancelCommandIndex = 1;
await dialog.ShowAsync();
}
Vielleicht mit try/catch-Anweisungen umgeben Ihren Code, so dass Sie die Ausnahme finden können, was geschieht, wenn er abstürzt? Die Ausnahmebedingungsnachricht könnte Ihnen helfen, herauszufinden, was tatsächlich passiert. – Streltsov
Sie müssen die Ausnahme Ihrer Anwendung veröffentlichen, um weitere Details zu erhalten. Vielen Dank! – RicardoPons
Warum schlagen Leute vor, Code in try/catch-Anweisung zu verpacken, um eine Ausnahme zu finden? Das ist völlig unnötig und eine schreckliche Idee! ** Wenn eine Ausnahme ausgelöst wird, wird Ihr Debugger einbrechen und Sie sofort an diesem Punkt sehen. Sie brauchen nicht mehrere Catch-Blöcke, die Meldungsfelder anzeigen. ** Der globale unbehandelte Ausnahmehandler tut dies bereits! All das, was eine Menge try/catch-Blöcke hinzufügt, hilft dabei sicherzustellen, dass Ausnahmen stummgeschaltet werden und Sie nie gute Chancen haben, sie zu debuggen. –