C# 将列表项添加到可观察集合列表

C# 将列表项添加到可观察集合列表,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,您好,我正在尝试将列表项添加到可观察的集合列表中。 我有一个模型,可以在其中设置列表属性 public class DisplayList { public List<string> listItem { get; set; } } 公共类显示列表 { 公共列表列表项{get;set;} } 然后在我的主页上我有一个可观察的收藏 private ObservableCollection<DisplayList> ListDisplay; 私有可观察采集列表显

您好,我正在尝试将列表项添加到可观察的集合列表中。 我有一个模型,可以在其中设置列表属性

public class DisplayList
{
   public List<string> listItem { get; set; }
}
公共类显示列表
{
公共列表列表项{get;set;}
}
然后在我的主页上我有一个可观察的收藏

 private ObservableCollection<DisplayList> ListDisplay;
私有可观察采集列表显示;
我在页面加载时实例化了它

 public MainPage()
    {

        this.InitializeComponent();

        location = new ObservableCollection<storeLocations>();
        ListDisplay = new ObservableCollection<DisplayList>();
        // location = manager.getStoreLocations();
        var dbList = db.Bales.Where(b => b.Location != null).Select(b => b.Location).ToList();
        InitialLoad(dbList, null);

    }
public主页()
{
this.InitializeComponent();
位置=新的ObservableCollection();
ListDisplay=新的ObservableCollection();
//location=manager.getStoreLocations();
var dbList=db.Bales.Where(b=>b.Location!=null);
InitialLoad(dbList,null);
}
我正在使用建议框,希望根据所做的选择筛选结果。过滤后的结果会显示在屏幕上的列表中,这就是我遇到的一些问题。我让它显示在屏幕上,但它正在显示 System.Collection.Generic.List的1[S…”而不是列表中的实际项

我认为我没有正确地列举,但似乎无法用我的方式指出错误

这是根据建议框的选择填充列表的方法

 public ObservableCollection<DisplayList>BaleList(List<string> CatNo)
    {

        foreach (var item in CatNo)
        {

            ListDisplay.Add(new DisplayList {listItem = CatNo.ToList()});
        }

        lstBales.IsItemClickEnabled = true;

        return ListDisplay;
    }
public-observeCollectionBaleList(列表类别号)
{
foreach(CatNo中的var项目)
{
添加(新的显示列表{listItem=CatNo.ToList()});
}
lstBales.IsItemClickEnabled=true;
返回列表显示;
}
它接收一个从建议框中获取的列表类型的参数。因此,参数值基本上就是我想在屏幕上的列表中显示的。例如,CP1354-2和第二项CP1355-3,因此这些值进入方法。我想将这些值应用到可观察的集合中,因为listbox控件绑定到可观察的c收集

编辑 在XAML中添加绑定

  <ListView x:Name="lstBales" ItemsSource="{x:Bind ListDisplay}">
                        <ListView.ItemTemplate>
                            <DataTemplate  x:Name="TemplateListName" x:DataType="data:DisplayList">
                                <Grid>
                                    <TextBlock Text="{x:Bind listItem}"/>
                                </Grid>

                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>


您正在将列表绑定到一个
TextBlock
,由于该
ToString()
被隐式调用,您无法获得实际值。根据您的要求,您可以将
listItem
更改为字符串,或创建嵌套的
ListView

您正在将List类型的对象绑定到TextBlock。而TextBlock.Text需要字符串。因此,如果我将对象从List类型更改为type字符串应该可以解决我的问题吗?是的。也请看一看,感谢您为我指明了正确的方向。在从列表更改为字符串之后,我仍然遇到了相同的问题,但经过一点擦伤之后,我实际上在方法上犯了一个错误。在foreach循环中…我将listItem=CatNo.ToList()它应该是ListItem=item.ToString,而不是CatNo输入参数…因此,除了关于Datatemplate的建议之外,还可以对其进行排序。谢谢大家。感谢更改为string,并且在foreach循环中也有问题。我将ListItem=CatNo设置为,但应该将其设置为item。。感谢您的帮助
ListDisplay.Add(new DisplayList {listItem = CatNo.ToList()});