2016-12-30 72 views
0

我在理解如何處理C#UWP中的ListBox es時遇到問題。當我嘗試從互聯網上的某個地方獲取項目時,它會失敗。我嘗試閱讀ObservableCollection s,說實話並沒有完全理解,我的測試仍然失敗。ListBox更新來自遠程的項目

爲什麼不能ListBox更新並顯示內容 - 當我運行調試器時,它就在那裏。

+0

你可以顯示你已經有什麼? –

回答

0

我做了一個小示例應用程序,顯示您有關於數據綁定的所有選項。你可以在這裏下載:https://1drv.ms/u/s!ApdKhb5zPLrRypBoZbHqguGIMqCz2A

亮點:

第1個部分裝載數據

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"; 
} 

在的OnNavigatedTo我假裝說我從web服務加載數據(通過使用2秒延時)。然後,在延遲後,我將一個可觀察集合分配給我的Items屬性。現在這個Items屬性需要實現接口INotifyPropertyChanged,否則你需要調用Bindings.Update()。爲此,我選擇了最後一個。我也創建了一個實現INotifyPropertyChanged的Item類。爲了證明這一點,我在最後3秒鐘後更改了第二項的屬性標題。在用戶界面你會看到這個自動獲取更新