2016-12-30 14 views
0

C#UWPでListBoxを処理する方法がわかりません。私がインターネット上のどこかからアイテムを手に入れようとすると、私は失敗します。私はObservableCollectionを読んでみました。正直なところ、それは完全に理解できず、私のテストはまだ失敗しました。ListBox更新リモートからのアイテム

ListBoxがコンテンツを更新して表示できないのはなぜですか?デバッガを実行すると、そこにコンテンツが表示されます。

+0

あなたはあなたがすでに持っているものを見せることができますか? –

答えて

0

私は、データバインディングの周りにあるすべてのオプションを示す少しのサンプルアプリケーションを作った。あなたはここでそれをダウンロードすることができます:https://1drv.ms/u/s!ApdKhb5zPLrRypBoZbHqguGIMqCz2A

ハイライト:

パート1つのデータのロードonnavigatedtoで

protected async override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    await Task.Delay(TimeSpan.FromSeconds(2)); // Fake waiting on result from a webservice/website; 

    Items = new ObservableCollection<Item> 
    { 
     new Item { Title = "Item 1" }, 
     new Item { Title = "Item 2" }, 
    }; 
    Bindings.Update(); 


    await Task.Delay(TimeSpan.FromSeconds(3)); 

    Items[1].Title = "Updated item via PropertyChanged"; 
} 

私の偽のこと、私は2秒の遅延を使用して(Webサービスからデータをロードしています)。その後、私はItemsプロパティにobservablecollectionを割り当てています。このItemsプロパティは、INotifyPropertyChangedインタフェースを必要とするか、Bindings.Update()を呼び出す必要があります。これのために私は最後のものを選んだ。また、INotifyPropertyChangedを実装しているItemクラスも作成しました。これを実証するために、最後の3秒後に2番目のアイテムのプロパティTitleを変更します。あなたはUIでこれが自動的に更新されるのを見るでしょう

関連する問題