使用数据模板将字符串列表绑定到列表框
本文关键字:列表 绑定 字符串 数据 | 更新日期: 2023-09-27 18:28:23
嗨,我需要将数据绑定到listboxx,并在listbox中使用dataplate,但我得到的是:System.Colollections.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
private ObservableCollection<BindingData> _myDataForLunchGrid = new ObservableCollection<BindingData>();
public ObservableCollection<BindingData> MyDataForLunchGrid
{
get { return _myDataForLunchGrid; }
set { _myDataForLunchGrid = value; }
}
类绑定数据
public List<string> vydajnaMenus { get; set; }
public string vydajnaNumber { get; set; }
知道我为什么用System.Colollections.Generic.List´1[System.String]而不是项目列表吗。?
如果你想在单个列表项中显示字符串的集合,那么你需要了解如何连接字符串。否则,运行时将简单地对对象调用ToString()。
我认为最简单的方法是编写一个Converter,它将连接任何集合中的字符串。
好吧,我开始工作了。这不是理想的解决方案,但效果很好。
foreach (var myVar in Vydajna1Menus)
{
_myDataForLunchGrid.Add(new BindingData
{
vydajnaMenus = myVar,
vydajnaNumber ="0"+numberOfFood.ToString()
});
}
OnPropertyChanged("MyDataForLunchGrid");