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

关于这个方法,他们正在使用互联网样品 –