Xamarin Forms BindableProperty创建将引发TypeInitializationException

时间:2018-08-21 07:42:50

标签: c# wpf xamarin

我在用户控件中创建BindableProperty时遇到问题。我的用户控件是ResultLabel类。这是我的代码,在其中创建BindableProperty:

public static readonly BindableProperty StateProperty = BindableProperty.Create(nameof(State), typeof(ResultStateEnum), typeof(ResultLabel));

该BindableProperty应该接受枚举(ResultStateEnum),但会引发TypeInitializationException

1 个答案:

答案 0 :(得分:0)

问题在于没有默认值参数传递给该方法。这是一个可选参数,因此程序将尝试将null作为默认参数传递。枚举不能为null,因此将触发异常。您应该在Create方法中再添加一个参数。假设ResultStateEnum的值为ResultStateEnum.Default。然后您的代码应如下所示:

public static readonly BindableProperty StateProperty = BindableProperty.Create(nameof(State), typeof(ResultStateEnum), typeof(ResultLabel), ResultStateEnum.Default);