由于 Xamarin UWP 项目中的 Xamarin.CarouselView,UWP 应用程序崩溃
Posted
技术标签:
【中文标题】由于 Xamarin UWP 项目中的 Xamarin.CarouselView,UWP 应用程序崩溃【英文标题】:UWP app is crashing due to Xamarin.CarouselView in Xamarin UWP project 【发布时间】:2020-01-26 10:00:23 【问题描述】:以下是错误:
System.ArgumentException: Delegate to an instance method cannot have null 'this'.
at System.MulticastDelegate.ThrowNullThisInDelegateToInstance()
at CarouselView.FormsPlugin.UWP.CarouselViewRenderer.FlipView_Loaded(Object sender, RoutedEventArgs e)
【问题讨论】:
可能重复:***.com/questions/3752824/… Delegate to an instance method cannot have null 'this'的可能重复 【参考方案1】:这是在库问题中注册的 CarouselView 控件 UWP 渲染器中的错误:https://github.com/alexrainman/CarouselView/issues/526。
在我的情况下,我在一个管理应用程序中遇到了这个崩溃,这是我独家开发的解决方案的一部分。让我对此感到好奇的是,最终用户应用程序不存在这个问题。所有解决方案都是由我编写的,使用相同的技术、库等。
所以我开始分解管理应用程序,通过将其与最终用户应用程序代码进行比较来了解崩溃。我得出的结论是,在 OnAppearing 上通过明确调用设置为控件的 ItemSource 的列表导致崩溃。
public ProductPage(string productId)
InitializeComponent();
this.productId = productId;
this.products = new ObservableCollection<ProductGalleryDTO>();
this.ProductGallery.ItemsSource = this.products;
protected override void OnAppearing()
base.OnAppearing();
// Note: this causes the issue in my case
//this.products.Clear();
this.GetProductDetails();
您的崩溃的重现步骤可能不同,因为这应该是 UWP 渲染器无法处理的一些意外状态。
此外,几年前我开始使用这个库,当时 Xamarin.Forms 中还没有类似的控件。现在我们有 CarouselView:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/carouselview/
【讨论】:
以上是关于由于 Xamarin UWP 项目中的 Xamarin.CarouselView,UWP 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xamarin.UWP 中的 Viewcell 项目选择上设置自己的颜色?
Xamarin Forms中的Android,IOS和UWP版本