0
我在理解如何处理C#UWP中的ListBox
es时遇到问题。当我尝试从互联网上的某个地方获取项目时,它会失败。我尝试阅读ObservableCollection
s,说实话并没有完全理解,我的测试仍然失败。ListBox更新来自远程的项目
为什么不能ListBox
更新并显示内容 - 当我运行调试器时,它就在那里。
我在理解如何处理C#UWP中的ListBox
es时遇到问题。当我尝试从互联网上的某个地方获取项目时,它会失败。我尝试阅读ObservableCollection
s,说实话并没有完全理解,我的测试仍然失败。ListBox更新来自远程的项目
为什么不能ListBox
更新并显示内容 - 当我运行调试器时,它就在那里。
我做了一个小示例应用程序,显示您有关于数据绑定的所有选项。你可以在这里下载: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秒钟后更改了第二项的属性标题。在用户界面你会看到这个自动获取更新
你可以显示你已经有什么? –