0

Я пишу Windows Phone 8.1 Приложение. Он получает JSON с сервера и deserializing it и храня его в списке. У меня есть ListView, связанный с этим Список. Теперь, если новые элементы добавлены в список, ListView не обновляется. Итак, я пытаюсь преобразовать этот список в ObservableCollection. Но я путаюсь с образцами и учебными пособиями в Интернете.Список 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

private ObservableCollection timeStepDataCollection; общественного ObservableCollection TimeStepDataCollection_Method { получить { если (timeStepDataCollection == NULL) { timeStepDataCollection = новый ObservableCollection (); } return timeStepDataCollection; } set { timeStepDataCollection = значение; } } –

+0

Вам не нужно создавать приватную переменную наблюдаемой коллекции и устанавливать ее методы getter и setter, вы можете использовать ее напрямую, инициализируя в вашем случае. Вам просто нужно создать Observable Collection и передать ее в представление списка, если вы хотите, чтобы эта коллекция использовалась иначе, а затем просто создавала глобальную переменную. – 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 = значение; } } –

+0

Как насчет этого метода, который они используют в интернет-образцах –

Смежные вопросы