我很难理解如何在C#UWP中处理ListBox
es。当我试图从互联网上的某个地方获取物品时,它失败了。我试着阅读ObservableCollection
s并且说实话并不完全理解,我的测试仍然失败。
为什么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我伪造我正在从webservice加载数据(使用2秒的延迟)。然后在延迟之后,我将使用observablecollection指定我的Items属性。现在,这个Items属性需要接口INotifyPropertyChanged实现,或者你需要调用Bindings.Update()。为此我选了最后一个。我还创建了一个实现INotifyPropertyChanged的Item类。为了证明这一点,我在最后3秒后更改了第二项的属性Title。在UI中,您将看到自动更新