0

我正在寫一個Windows Phone 8.1 App。它得到JSON從服務器反序列化 it和將它存儲到列表。我有ListView綁定到此列表。現在,如果新項目添加到列表中,ListView不會更新。所以,我試圖將此列表轉換爲ObservableCollection。但是我對互聯網上的示例和教程感到困惑。List To ObservableCollection

XAML:

<DataTemplate 
      x:Key="StandardProductsItemTemplate"> 
      <Grid > 
       <StackPanel 
        Orientation="Vertical"> 
         <Image 
        Source="{Binding ProductImage}" 
         x:Name="ImageDisplay"/>       
        <TextBlock 
        Text="{Binding ProductName}"/> 
       </StackPanel> 
      </Grid> 
     </DataTemplate> 

C#:

List<Product> ProductsObject = new List<Product>(); 

for (int i = 0; i < GetProductByCategoryResultObject.Products.Count; i++) 
      { 
      ProductsObject.Add(GetProductByCategoryResultObject.Products[i]); 
      } 
ProductListView.ItemsSource = ProductsObject; 

現在,我想用的ObservableCollection,而不是列表的ListView控件保持更新。請幫助

回答

2
ObservableCollection<Product> ProductsObject = new ObservableCollection<Product>(); 

for (int i = 0; i < GetProductByCategoryResultObject.Products.Count; i++) 
      { 
      ProductsObject.Add(GetProductByCategoryResultObject.Products[i]); 
      } 
ProductListView.ItemsSource = ProductsObject; 
+0

怎麼樣這種方法,他們使用互聯網的樣本: –

+0

私人的ObservableCollection timeStepDataCollection; 公衆的ObservableCollection TimeStepDataCollection_Method { 得到 { 如果(timeStepDataCollection == NULL){ timeStepDataCollection =新的ObservableCollection (); } return timeStepDataCollection; } set { timeStepDataCollection = value; } } –

+0

你不需要創建一個可觀察集合的私有變量,並設置它的getter和setter方法,你可以直接通過在你的情況下初始化來使用它。你只需要創建一個Observable集合並將它傳遞給列表視圖,如果你希望那個集合在其他地方使用,那麼就創建一個全局變量。 – Vyas

2

您可以簡單地通過一個ObservableCollection更換您的清單,在你的榜樣語法保持不變:

ObservableCollection<Product> ProductsObject = new ObservableCollection<Product>(); 

for (int i = 0; i < GetProductByCategoryResultObject.Products.Count; i++) 
    { 
     ProductsObject.Add(GetProductByCategoryResultObject.Products[i]); 
    } 
ProductListView.ItemsSource = ProductsObject; 
+0

私人的ObservableCollection timeStepDataCollection; 公衆的ObservableCollection TimeStepDataCollection_Method { 得到 { 如果(timeStepDataCollection == NULL){ timeStepDataCollection =新的ObservableCollection (); } return timeStepDataCollection; } set { timeStepDataCollection = value; }} 什麼 –

+0

關於這個方法,他們正在使用互聯網樣品 –