2017-07-04 90 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