【发布时间】:2017-08-28 00:45:38
【问题描述】:
我创建了一个简单的ListView,正如我在ListView is not scrolling with grouping 问题中所展示的那样。
我的问题是,在 UWP 上,我需要在 Windows Phone 上插入 await Task.Delay(1500),在 Windows 桌面上插入大约 200ms。
我没有用大量数据填充ListView,所以我也想知道,当用户运行它时会发生什么,因为他们可以拥有大量数据。
但是为什么我需要它,因为在我看来它是一个错误的代码?
没有Task.Delay 我得到的例外是Error HRESULT E_FAIL has been returned from a call to a COM component.
消息是
System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.
at Windows.UI.Xaml.UIElement.Measure(Size availableSize)
at Xamarin.Forms.Platform.UWP.VisualElementRenderer`2.MeasureOverride(Size availableSize)
at Windows.UI.Xaml.UIElement.Measure(Size availableSize)
at Xamarin.Forms.Platform.UWP.VisualElementRenderer`2.MeasureOverride(Size availableSize)
at Windows.UI.Xaml.UIElement.Measure(Size availableSize)
at Xamarin.Forms.Plat
如何修复此错误/错误代码?
更新
如果我设置HasUnevenRows = false 它不会崩溃,但它只是滚动到不正确的ViewCell。但我需要使用HasUnevenRows = true。
如果我设置 HasUnevenRows = false 和 RowHeight,也会出现同样的问题。
【问题讨论】:
-
我认为这可能与将
ListView包装在Grid中有关。看看这个bug report。虽然ScrollView与Grid当然不同,但在这种特殊情况下可能会导致问题。您至少可以尝试将其从Grid中取出来验证它是否有效? -
不,它仍然崩溃:(
-
我创建了一个sample application 来重现您的问题(ListView is not scrolling with grouping)。它还使用
Task.Delay()模拟了来自服务器的响应,但没有抛出异常。 -
如我所见,唯一的区别是,我设置了
IsPullToRefreshEnabled = true,当然还有一个 Command 和 IsRefreshing 属性。而且我一直在使用 C# 而不是 XAML。
标签: c# listview xamarin uwp xamarin.forms