簡體   English   中英

使用datatemplate將字符串列表綁定到列表框

[英]Bind list of string to listbox with datatemplate

嗨,我需要使用listte中的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]而不是項目列表嗎?

我想在單個列表項中顯示字符串集合,然后需要一些如何串聯字符串。 否則,運行時將僅在對象上調用ToString()。

我認為最簡單的方法是編寫一個Converter,它將連接任何集合中的字符串。

好,我知道了。 它不是理想的解決方案,但是效果很好。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM