2013-08-21 3 views
0

안녕하세요, 목록 상자에 datateplate를 사용하여 listboxx에 바인드 데이터가 필요하지만 다음과 같이 나타납니다. System.Colllections.Generic.List'1 [System.String] 대신 항목 목록이 필요합니다.문자열의 목록을 데이터 템플릿이있는 목록 상자에 바인딩합니다.

<ListBox x:Name="lbMenu" ItemsSource="{Binding MyDataForLunchGrid}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock x:Name="tbMenu" Text="{Binding vydajnaMenus}"/> 
       <TextBlock x:Name="tbMenuNumber" Text="{Binding vydajnaNumber}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

데이터 바인딩 :

_myDataForLunchGrid.Add(new BindingData 
{    
    vydajnaMenus = Vydajna1Menus.Select(s => s.ToString()).ToList(), 
    vydajnaNumber = "01" 
}); 
OnPropertyChanged("MyDataForLunchGrid"); 

MyCollection mainpage

private ObservableCollection<BindingData> _myDataForLunchGrid = new ObservableCollection<BindingData>(); 

    public ObservableCollection<BindingData> MyDataForLunchGrid 
    { 
     get { return _myDataForLunchGrid; } 
     set { _myDataForLunchGrid = value; } 
    } 

클래스 BindingData

에 10

항목 목록 대신 System.Colllections.Generic.List'1 [System.String]을 가져 오는 이유는 무엇입니까?

답변

0

정상적으로 작동합니다. 그 이상적인 솔루션이 아니지만 잘 작동합니다.

   foreach (var myVar in Vydajna1Menus) 
       { 
       _myDataForLunchGrid.Add(new BindingData 
       { 
        vydajnaMenus = myVar, 
        vydajnaNumber ="0"+numberOfFood.ToString() 
       }); 
       } 
       OnPropertyChanged("MyDataForLunchGrid"); 
0

개별 목록 항목에 문자열 모음을 표시하려면 문자열을 연결하는 방법이 필요합니다. 그렇지 않으면 런타임은 단순히 객체에 대해 ToString()을 호출합니다.

가장 간단한 방법은 모든 컬렉션의 문자열을 연결하는 변환기를 작성하는 것입니다.

관련 문제