Example #1
0
        /// <summary>
        /// Wird aufgerufen, wenn die Ausführung der Anwendung angehalten wird.  Der Anwendungszustand wird gespeichert,
        /// ohne zu wissen, ob die Anwendung beendet oder fortgesetzt wird und die Speicherinhalte dabei
        /// unbeschädigt bleiben.
        /// </summary>
        /// <param name="sender">Die Quelle der Anhalteanforderung.</param>
        /// <param name="e">Details zur Anhalteanforderung.</param>
        private async void OnSuspending(object sender, SuspendingEventArgs e)
        {
            var deferral = e.SuspendingOperation.GetDeferral();
            //TODO: Anwendungszustand speichern und alle Hintergrundaktivitäten beenden

            //Liste speichern:
            await MyStorage.SchreibeObjektAsync <ObservableCollection <Kunde> >("kunden.dat", _kunden);

            await MyStorage.SchreibeObjektAsync <ObservableCollection <Bestellung> >("bestellungen.dat", _bestellungen);

            await MyStorage.SchreibeObjektAsync <ObservableCollection <Speise> >("speisen.dat", _speisen);

            ApplicationData.Current.RoamingSettings.Values["kdNr"] = _kdId;

            deferral.Complete();
        }
Example #2
0
        /// <summary>
        /// Wird aufgerufen, wenn die Anwendung durch den Endbenutzer normal gestartet wird. Weitere Einstiegspunkte
        /// werden z. B. verwendet, wenn die Anwendung gestartet wird, um eine bestimmte Datei zu öffnen.
        /// </summary>
        /// <param name="e">Details über Startanforderung und -prozess.</param>
        protected override async void OnLaunched(LaunchActivatedEventArgs e)
        {
            _kunden = await MyStorage.LeseObjektAsync <ObservableCollection <Kunde> >("kunden.dat");

            if (_kunden == null)
            {
                _kunden = new ObservableCollection <Kunde>();
            }

            _bestellungen = await MyStorage.LeseObjektAsync <ObservableCollection <Bestellung> >("bestellungen.dat");

            if (_bestellungen == null)
            {
                _bestellungen = new ObservableCollection <Bestellung>();
            }

            _speisen = await MyStorage.LeseObjektAsync <ObservableCollection <Speise> >("speise.dat");

            if (_speisen == null)
            {
                _speisen = new ObservableCollection <Speise>();
            }

            _kdId = My_Methods.readSettings <int>("kdNr", 0);


#if DEBUG
            if (System.Diagnostics.Debugger.IsAttached)
            {
                this.DebugSettings.EnableFrameRateCounter = true;
            }
#endif

            Frame rootFrame = Window.Current.Content as Frame;

            // App-Initialisierung nicht wiederholen, wenn das Fenster bereits Inhalte enthält.
            // Nur sicherstellen, dass das Fenster aktiv ist.
            if (rootFrame == null)
            {
                // Frame erstellen, der als Navigationskontext fungiert und zum Parameter der ersten Seite navigieren
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;



                //ZurückNavigation für alle Fenster:
                rootFrame.Navigated += RootFrame_Navigated;
                SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested;



                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Zustand von zuvor angehaltener Anwendung laden
                }

                // Den Frame im aktuellen Fenster platzieren
                Window.Current.Content = rootFrame;
            }

            if (rootFrame.Content == null)
            {
                // Wenn der Navigationsstapel nicht wiederhergestellt wird, zur ersten Seite navigieren
                // und die neue Seite konfigurieren, indem die erforderlichen Informationen als Navigationsparameter
                // übergeben werden
                rootFrame.Navigate(typeof(MainPage), e.Arguments);
            }
            // Sicherstellen, dass das aktuelle Fenster aktiv ist
            Window.Current.Activate();
        }