将列表项添加到可观察的集合列表
Adding list items to observable collection list
您好,我正在尝试将列表项添加到可观察的集合列表中。
我有一个模型,我在其中设置了一个列表 属性
public class DisplayList
{
public List<string> listItem { 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);
}
我正在使用建议框并希望根据所做的选择过滤结果。过滤后的结果然后显示在屏幕上的列表中,这是我遇到麻烦的地方。我让它显示在屏幕上,但它正在显示
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;
}
它接收一个从意见箱中获取的列表类型的参数。所以参数值基本上就是我想在屏幕列表中显示的值。例如CP1354-2 和第二项 CP1355-3 所以这些值进入方法。我想将这些值应用于可观察集合,因为列表框控件已绑定到可观察集合。
编辑
在 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>
ListDisplay.Add(new DisplayList {listItem = CatNo.ToList()});
和<TextBlock Text="{x:Bind listItem}"/>
您正在将列表绑定到 TextBlock
,因此 ToString()
被隐式调用,您没有获得实际值。根据您的要求,您可以将 listItem
更改为字符串或创建嵌套的 ListView
您好,我正在尝试将列表项添加到可观察的集合列表中。 我有一个模型,我在其中设置了一个列表 属性
public class DisplayList
{
public List<string> listItem { 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);
}
我正在使用建议框并希望根据所做的选择过滤结果。过滤后的结果然后显示在屏幕上的列表中,这是我遇到麻烦的地方。我让它显示在屏幕上,但它正在显示 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;
}
它接收一个从意见箱中获取的列表类型的参数。所以参数值基本上就是我想在屏幕列表中显示的值。例如CP1354-2 和第二项 CP1355-3 所以这些值进入方法。我想将这些值应用于可观察集合,因为列表框控件已绑定到可观察集合。
编辑 在 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>
ListDisplay.Add(new DisplayList {listItem = CatNo.ToList()});
和<TextBlock Text="{x:Bind listItem}"/>
您正在将列表绑定到 TextBlock
,因此 ToString()
被隐式调用,您没有获得实际值。根据您的要求,您可以将 listItem
更改为字符串或创建嵌套的 ListView