0

嗨,我需要使用 listbox 中的 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

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

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

类 BindingData

public List<string> vydajnaMenus { get; set; }
public string vydajnaNumber { get; set; }

知道为什么我得到 System.Colllections.Generic.List´1[System.String] 而不是项目列表。?

4

2 回答 2

0

我想在单个列表项中显示字符串的集合,那么您需要一些如何连接字符串的方法。否则,运行时将简单地调用对象上的 ToString()。

我认为最简单的方法是编写一个转换器,它将连接任何集合中的字符串。

于 2013-08-21T11:09:36.293 回答
0

好的,我让它工作。它不是理想的解决方案,但效果很好。

                foreach (var myVar in Vydajna1Menus)
                {  
                _myDataForLunchGrid.Add(new BindingData
                {
                    vydajnaMenus = myVar,
                    vydajnaNumber ="0"+numberOfFood.ToString()
                });
                }
                OnPropertyChanged("MyDataForLunchGrid");
于 2013-08-21T13:20:10.563 回答