2017-07-04 104 views
0

嗨我想将列表项添加到可观察的收藏列表。 我有一个模型,其中我建立一个列表属性将列表项添加到可观察的收藏列表

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> 
+0

您正在绑定列表类型为TextBlock的对象。而TextBlock.Text期待一个字符串。 –

+0

因此,如果我从类型列表更改对象类型字符串它应该解决我的问题? – user7592671

+0

是的。也看看在https://stackoverflow.com/questions/19733671/make-a-wpf-listbox-comma-separate-values –

回答

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

<TextBlock Text="{x:Bind listItem}"/>

要绑定列表的TextBlock由于其ToString()被隐式调用,你没有得到

编辑 添加绑定实际值。根据您的要求,您可以将listItem更改为字符串或创建嵌套ListView

+0

感谢更改为字符串,并在foreach循环中也有问题。我设置listitem = CatNo,但应该已经设置=项目..感谢您的帮助 – user7592671