2012-09-10 5 views
0

이미 내 코드의 목록 상자가 지금은 추가 표시되지 않습니다 새로운 :목록 상자

<ListBox x:Name="Diaryresult" 
          Foreground="Black" 
          Margin="19,0,0,8"> 
         <ListBox.ItemTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal"> 
            <TextBlock Text="Binding {name}" 
               FontSize="24" /> 
           </StackPanel> 
          </DataTemplate> 
         </ListBox.ItemTemplate> 
        </ListBox> 

내가 다음 코드로이 목록 채우기 오전 :

XElement diary = XElement.Parse(e.Result); 
       IEnumerable<XElement> diaryelements = diary.Elements("diaryelement"); 

       List<Produkt> diaryprodukte = new List<Produkt>(); 

       foreach (XElement diaryelement in diaryelements) 
       { 
        Produkt p = new Produkt(); 
        p.name = diaryelement.Element("diaryshortitem").Element("description").Element("name").Value; 
        p.shortfacts = diaryelement.Element("diaryshortitem").Element("data").Element("kj").Value + " KJ - " 
          + diaryelement.Element("diaryshortitem").Element("data").Element("kcal").Value + "kcal"; 
        diary.Add(p); 

        Debug.WriteLine("Added "+p.name); 
       } 
       Diaryresult.ItemsSource = diaryprodukte; 


       Diaryresult.Visibility = System.Windows.Visibility.Visible; 

을 그러나 그것은 나타나지 않습니다. 누구든지 트릭을 보나요?

+1

내가이 XAML하지 웹폼 –

답변

3

바인딩 태그가 잘못되었습니다. "{Name {Binding {Name}"은 (는) XAML을 의미하지 않습니다. {바인딩 이름}은 수행하려는 컨텍스트의 속성 이름 인 databind을 의미합니다.

교체 :

<TextBlock Text="Binding {name}" FontSize="24" /> 

으로 :

<TextBlock Text="{Binding name}" FontSize="24" /> 

은 또한 당신이 목록에 요소를 추가해야합니다 전화를 기억

dairyprodukt.Add(p); 

을 그리고 당신의 한 번 NotifyPropertyChanged() 변경 사항을 UI 스레드에 알리기 위해 완료되었습니다. 내 말은, 당신은 Diaryresult.Visibility = System.Windows.Visibility.Visible;을 사용하고 있습니다. MVVM 또는 CodeBehind를 사용하고 계십니까?

+0

알려줘야 생각하려고, 나는 그것을 변경 -하지만 시각은 아직 없다. – Clue

+0

@Clue 내 편집을 참조하십시오. –

0

dairyprodukte에 Produkt를 추가 한 것처럼 보이지 않습니다. dairyprodukte는 바인딩 할 때 여전히 빈 목록입니다.

foreach (XElement diaryelement in diaryelements) 
      { 
       Produkt p = new Produkt(); 
       p.name = diaryelement.Element("diaryshortitem").Element("description").Element("name").Value; 
       p.shortfacts = diaryelement.Element("diaryshortitem").Element("data").Element("kj").Value + " KJ - " 
         + diaryelement.Element("diaryshortitem").Element("data").Element("kcal").Value + "kcal"; 
       diary.Add(p); 

       Debug.WriteLine("Added "+p.name); 
       diaryprodukte.Add(p); 
      }