Bestaat er een algemene navigatieconventie in een MVVM Light Windows Phone-toepassing?

Naarmate mijn app groter wordt, merk ik dat steeds hetzelfde type entiteit steeds vaker wordt weergegeven, meestal in een keuzelijst.

Wanneer iemand op de entiteit tikt, wil ik naar de gedetailleerde weergave van deze entiteit navigeren.

Een voorbeeld hiervan is een product: het wordt per categorie weergegeven in een productlijst, het wordt weergegeven in de zoekresultaten of het kan worden weergegeven als een opgeslagen favoriet. In mijn geval zouden deze allemaal afkomstig zijn van een tabel in lokale SQLCE-opslag.

Telkens wanneer ik de entiteit op de een of andere manier oppervlakkig oploop, sneed ik in feite dezelfde code: abonneer je op de SelectionChange-gebeurtenis in de listbox, extraheer de entiteit, gebruik MVVM Light-berichten om aan te geven dat de geselecteerde entiteit is gewijzigd, en bel NavigationService om zaken te doen.

Heeft iemand aan iets soortgelijks gewerkt en, zo ja, waar ben je mee gekomen? Of nog belangrijker: als er een MVVM Light-toolkitconventie is die ik over het hoofd zie, kunt u mij dan in de juiste richting wijzen?

0

2 antwoord

I think the question here is, how do I deal with this without cut/paste the same code each time? If this is the case, maybe trying to package the entity/listbox thing in a XAML usercontrol! Take a look at this: http://www.windowsphonegeek.com/articles/Creating-a-WP7-Custom-Control-in-7-Steps

Als de representatie anders moet zijn, kunt u dit bekijken: http://www.windowsphonegeek.com/articles/Implementing-Windows-Phone-7-DataTemplateSelector-and-CustomDataTemplateSelector (in dit voorbeeld wordt verschillende vormgeving in één keuzelijst weergegeven, maar u kunt dit alleen wijzigen in verschillende stijlen toepassen op elke verschillende pagina met een listbox erop)

0
toegevoegd

Noem je nu de NavigationService van code-behind of het View-model? Als u de eerste bent, kunt u de WP7 Navigation arcticle by LBugnion voor het activeren van de VM. Als u dat combineert met het gedrag EventToCommand ( zoals hier in ) zou je een mooie en schone" MyEntitySelected "-opdracht in de VM moeten kunnen maken die de entiteit als een parameter neemt.

0
toegevoegd