【发布时间】:2020-03-23 01:53:56
【问题描述】:
我正在学习 Xamarin.Forms,并且我使用 Visual Studio 2019 创建了一个新项目,使用 Master-Detail 项目模板。我正在使用 UWP(因为我想制作一个 Windows 10 应用)。
为什么添加新项目后列表视图没有立即显示? 这是由事件/消息传递缓慢引起的,还是有动画故意减慢它的速度?
在这个示例中,一切都发生在本地 ObservableCollection 中,其中只有几项,所以我希望它能够立即显示更改。
例子:
代码是Visual Studio生成的,我可以提供,但我并没有真正做任何改变。
编辑: 由于我怀疑这与 ObservableCollection 生成的事件和 ListView 中的绑定有关,因此我尝试了以下更改,该更改有效:
MessagingCenter.Subscribe<NewItemPage, Item>(this, "AddItem", async (obj, item) =>
{
var newItem = item as Item;
Items.Add(newItem);
await DataStore.AddItemAsync(newItem);
});
收件人:
MessagingCenter.Subscribe<NewItemPage, Item>(this, "AddItem", async (obj, item) =>
{
var newItem = item as Item;
var tmp = new ObservableCollection<Item>();
foreach (var i in Items)
{
tmp.Add(i);
}
tmp.Add(newItem);
Items = tmp;
OnPropertyChanged(nameof(Items));
await DataStore.AddItemAsync(newItem);
});
当然,这是低效且不理想的,但可能有助于其他人弄清楚原始版本中发生了什么。 更改后的行为:
【问题讨论】:
-
我看不出问题,是有问题,对吧?
-
我希望它尽快显示出来,而不会经历“白色渐变”阶段
标签: c# listview xamarin xamarin.forms uwp