Canvasfarbe einer zweiten Seite von anderer Seite aus ändern
Hallo,
ich habe 2 xaml Pages. Auf der einen habe ich einen Canvas. Und einen Button.
Wenn ich den Button anklicke werde ich weitergeleitet auf die andere xaml, in der ich meine Farbe auswählenm kann. Wenn ich die Farbe speichere soll er zurück navigieren und den canvas die entsprechende Farbe als Backgroundfarbe zu weisen.
Es ist ja möglich eine Farbvariable als public zu deklarieren und einfach diese dann zu ändern und den Canvas den Befehl geben. Ist ja eigentlich ganz einfach. Ich möchte gerne aber wissen ob es noch eine andere Möglichkeit gibt.
HAbe bisschen gegooglet und etwa svon Overrride NavigatedTo gelesen, welches für solche Probleme sein soll. Leider habe ich nirgends gefunden wie es genau funktioniert oder ein Beispiel
Könnt ihr mir helfen?
AW: Canvasfarbe einer zweiten Seite von anderer Seite aus ändern
Als erstes würde ich dir empfehlen, mal ein wenig über ViewModels zu lesen. Ein (aus meiner Sicht) einfacher und guter Ansatz ist hier zu finden:
http://wildermuth.com/2010/10/13/Arc...Where_is_my_VM)
Das Konzept dahinter ist, dass du an einer Stelle deiner App alle deine Daten speicherst, die du auf deinen Seiten brauchst.
Jetzt haben beide deine Seiten diese Datenquelle als Grundlage. Sagen wir jetzt, dass in der Datenquelle die Farbe gespeichert ist. Jetzt wechselst du von der einen Seite zur anderen. Diese ändert die Farbe der Datenquelle. Jetzt wird zurücknavigiert und deine vorherige Seite merkt, dass in der Datenquelle eine neue Farbe ist und verwendet diese.
Dafür müssen natürlich mehrere Sache beachtet werden. Du müsstest zum Beispiel im Contructor der Pages den DataContext auf die Datenquelle legen und dann in der xaml die Backgroundfarbe des Canvas auf die in der Datenquelle liegenden Farbe binden.
Ein super Beispiel kannst du selbt erstellen, wenn du in Visual Studio ein neues Projekt "Windows Phone Databound Application" erstellst.
Da ist der Hauptteil des Codes vorhanden den du brauchst für dein Projekt.
Wenn du verstanden hast, wie das ViewModel funktioniert und noch spezifische Fragen hast, dann her damit.
ViewModels erleichtern das Entwicklen sehr meiner Meinung nach und man tut gut daran schon früh damit anzufangen diese zu verwenden.
AW: Canvasfarbe einer zweiten Seite von anderer Seite aus ändern
Könntest du mir vielleicht ein Beispiel schicken (Vielleicht ein Projekt). Ich verstehe es nicht ganz genau wie es anwenden soll. Anhand eines Beispieles würde ich es sofort verstehen. Muss kein komplexes Beispiel sein nur eins wo ich sehe wie ich die ViewModels einsetze
Liste der Anhänge anzeigen (Anzahl: 1)
AW: Canvasfarbe einer zweiten Seite von anderer Seite aus ändern
So, habe mal schnell genau dein Problem programmiert. Ist nicht besonders schwer und funktioniert.
Wenn du das Rechteck auf der Hauptseite anklickst, öffnet sich eine neue Seite, auf der man die Farbe von dem Rechteck einstellen kann. Klcikst du auf übernehmen, wird die Farbe übernommen. Auf den Zurückbutton und die Farbe wird nicht übernommen.
Solltest du noch fragen zu dem Projekt haben oder sollte bei dir etwas nicht funktionieren, dann her damit.
AW: Canvasfarbe einer zweiten Seite von anderer Seite aus ändern
Wirklich vielen vielen Dank werde mich jetzt erstmal hinsetzen und schauen wie es jetzt den funktioniert mit den ViewModel. Es ist echt genial wenn man weiß wie es funktioniert.