
Ergebnis 1 bis 6 von 6
-
Bin neu hier
- 04.04.2012, 11:37
- #1
Hallo,
meine aktuelle Situation: ich entwickle gerade eine App zum Anzeigen von Cocktail-Rezepten, die App greift über ein Webservice auf eine entfernte Datenbank zu und holt sich die Daten im JSON-Format, danach werden die Daten in einer ListBox ausgegeben. Funktioniert alles soweit.
Mein Problem ist jetzt nur, dass ich nicht wirklich mit den Daten arbeiten kann, ich will zB wenn ich auf ein Item in der ListBox klicke, eine neue Page geöffnet wird und mir die jeweiligen Daten des Items anzeigt. Nur steh ich hier an und weiß nicht weiter. Ich weiß nicht wie ich in der neuen Page mit den Daten arbeiten kann.
MainPage: http://pastebin.com/3gU3ymGK
mit der ListBox
Code:<ListBox x:Name="CocktailList" Margin="0,0,0,78" Grid.Row="1" SelectionChanged="CocktailList_SelectionChanged"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding id}" Margin="0,0,12,0" /> <TextBlock Text="{Binding name}" Margin="0,0,12,0" Height="60" Style="{StaticResource PhoneTextNormalStyle}"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
Code:[{"id":"0","name":"Pina Colada","image":"pina-colada.jpg","description":"pina-colada.html"},{"id":"5","name":"Tequila Sunrise","image":"tequila-sunrise.jpg","description":"tequila-sunrise.html"},{"id":"1","name":"Whiskey Sour","image":"whiskey-sour.jpg","description":"whiskey-sour.html"},{"id":"2","name":"Sex on the Beach","image":"sex-on-the-beach.jpg","description":"sex-on-the-beach.html"},{"id":"3","name":"Caipirinha","image":"caipirinha.jpg","description":"caipirinha.html"},{"id":"4","name":"Mai Tai","image":"mai-tai.jpg","description":"mai-tai.html"}]
Felder "id", "name", "image", "description"
Bitte um Hilfe
lg
Daniel
-
Mich gibt's schon länger
- 06.04.2012, 00:33
- #2
also so wie ich das verstehe möchtest du einfach das item, welches du anklickst in einer neuen seite anzeigen mit zusätzlichen infos. Ich hab kurz deinen code überflogen. Du willst also einen "Cocktail" detailiert anzeigen lassen in einer neuen seite. es gibt 2 möglichkeiten daten an eine neue Seite zu übergeben.
1) jede Seite hat zugriff auf die App.xaml.cs. D.h. du definierst dort global ein Objekt vom Typ Cocktail und wenn du dein item in der listbox wählst, setzt du den globalen Cocktail mit dem gewählten und greifst in der neuen seite auf den globalen zu.
Am besten als static deklarieren in der App.xaml.cs:
"public static Cocktail _globalCocktail = null;"
und Zugriff erhälst du dann über: "App._globalCocktail = ....."
2)so wie du es schon gemacht hast, einen string mit dem selectedIndex übergeben.
Nur musst du ItemSource, wo sich die Cocktails befinden, global deklarieren, wie ich es schon unter punkt 1) versucht habe zu erklärenso erhält man am einfachsten einen zugriff drauf. Also ItemSource von der CocktailListe global setzen.
in der neuen Page machst du dann:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
var data = this.NavigationContext.QueryString;
int item = -1;
if (data.ContainsKey("selectedItem"))
item = data["selectedItem"];
//Hier jetzt den zugriff auf die globale liste mit den cocktails.
//und du hast deine daten in der neuen Page, mit Hilfe des selectedItem-Index
}
Ich hoffe ich konnte dir ein wenig weiterhelfen
MfG
nudels
-
Mich gibt's schon länger
- 06.04.2012, 00:42
- #3
Ich versuche bei soetwas mit dem MVVM Model zu arbeiten. Dann hat man immer alle Daten beisammen. Es benötigt zwar etwas Einarbeitung aber es hat auch seine Vorteile.
MfG Johann Löwen
Mit der kostenlosen PocketPC.ch App von meinem HD7 T9292 aus geschrieben.
-
Bin neu hier
- 06.04.2012, 08:31
- #4
danke euch beiden, ja das ist genau das was ich vor habe.... werde es mal probieren und euch danach rückmeldung geben
-
Mich gibt's schon länger
- 06.04.2012, 10:42
- #5
Ich habe das im Prinzip auch so gemacht wie von nudels beschrieben. Das ViewModel habe ich in der App.xaml.vb als Static deklariert. Das VM beinhaltet eine Liste vom Typ "Model" zusätzlich noch eine Variable die den SelectedIndex zwischen speichert. Eine Property die das selektierte Item aus der Liste wiedergibt.
MfG Johann Löwen
Mit der kostenlosen PocketPC.ch App von meinem HD7 T9292 aus geschrieben.
-
Bin neu hier
- 17.04.2012, 14:47
- #6
Hallo,
hab mich wieder nach dem Osterstress zum PC gesetzt und an der App weitergemachthabe nun eine
Code:public static int CocktailId
Meine Frage nun: ist es möglich die ListBox nach der ID zu sortieren? Denn sonst funktioniert die Logik mit dem SelectedIndex nicht, da aktuell die Daten unsortiert in der ListBox ausgegeben werden.
Zweite Frage: in der ListBox werden die Daten via XAML mitCode:<TextBlock Text="{Binding id}" Margin="0,0,12,0" />
hier mein bisheriger Code: http://pastebin.com/mFmDrbbi
Danke & lg
Daniel
Ähnliche Themen
-
Daten aus gebundener Listbox abrufen
Von Manny75 im Forum Windows Phone 7 EntwicklungAntworten: 3Letzter Beitrag: 06.02.2012, 06:50 -
daten von einer Freigabe des Server2008r2 zu ATV2 streamen
Von pd2100 im Forum Apple TVAntworten: 1Letzter Beitrag: 31.01.2012, 18:46 -
200MB Daten bei Debitel und nun? Weiss nicht weiter
Von martaa70 im Forum Samsung Galaxy S2Antworten: 15Letzter Beitrag: 05.07.2011, 18:42 -
Inhalt einer Listbox speichern
Von Schledi im Forum Windows Phone 7 EntwicklungAntworten: 0Letzter Beitrag: 23.05.2011, 17:15 -
mobile tagging - barcodes mit dem handy verarbeiten. tips und tricks
Von Dresdner im Forum Software (Touchscreen)Antworten: 0Letzter Beitrag: 13.04.2010, 23:25
Pixel 10 Serie mit Problemen:...