2013-04-12 4 views
0

Ceci est la première fois que je fais XAML si s'il vous plaît comprendre que je pourrais être lent à apprendreliaison de données à Listbox de JSON Réponse

Ci-dessous mes codes CS. J'essaye de lier les "attributs" à la liste.

public DirectionPage() 
    { 
     InitializeComponent(); 

     List<Feature> features = App.dResult.directions[0].features; 
     foreach (Feature f in features) 
     { 
      Attributes a = f.attributes; 
      MessageBox.Show(a.text); 
     } 
    } 

    public ObservableCollection<Feature> test = new ObservableCollection<Feature>(); 

Voici les codes XAML.

<ListBox x:Name="directionListBox" ItemsSource="{Binding}" > 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Vertical"> 
         <TextBlock Text="{Binding text}" Style="{StaticResource PhoneTextTitle2Style}" /> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

Toute aide sera grandement appréciée.

+0

Collez votre code comme ** texte **, pas comme ** image ** .. –

Répondre

1

Je n'ai pas vu la collection d'attributs. Peut-être que ce que vous pouvez faire est de recueillir les attributs dans une liste peut être votre test et le mettre dans le biding.

Ou mettez la collection Features comme source d'éléments de votre zone de liste. dire

public DirectionPage() 
    { 
     InitializeComponent(); 
     List<Attributes> LAtributes=new List<Attributes>(); 
     List<Feature> features = App.dResult.directions[0].features; 

     foreach (Feature f in features) 
     { 
      Attributes a=new Attributes(); 
      a = f.attributes; 
      LAttributes.add(a); 
      MessageBox.Show(a.text); 
     } 
     directionListBox.ItemsSource=Lattribute; 
    } 

et

<ListBox x:Name="directionListBox" ItemsSource="{Binding}" > 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Vertical"> 
         <TextBlock Text="{Binding Path=text}" Style="{StaticResource PhoneTextTitle2Style}" /> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

Espérons que cela vous aidera!

+0

désolé j'ai essayé, mais ne pouvais toujours pas travailler. – qU3st

+0

La chose est ce type d'attribut dans les fonctionnalités est? Comme je le regarde, il a aussi une propriété appelée texte. Donc, collecter premier attribut avec une liste, peut être comme le suivant Liste attributelist = new Liste (); puis récupérez la boucle que vous avez créée en ajoutant attributeelist.add (f.attributes); et directionListBox.ItemsSource = attributelist; après tout dans le xaml ItemSource = {Texte du chemin de liaison} // dans ce cas je considère le texte comme une propriété des attributs de classe. – ClickBright

+0

actuellement, j'essaie de lier l'attribut dans la zone de liste et afficher 'texte' dans la zone de liste. text est une méthode dans la classe d'attribut – qU3st

Questions connexes