CommunityToolkit.Maui.Options

CommunityToolkit.Maui.Options 允许开发人员自定义 CommunityToolkit.Maui。 工具包的行为可能有所不同,具体取决于这些设置。

调用 .UseMauiCommunityToolkit() 时,应在启动时分配 Options

var builder = MauiApp.CreateBuilder();
builder.UseMauiCommunityToolkit(options =>
{
    options.SetShouldSuppressExceptionsInConverters(false);
    options.SetShouldSuppressExceptionsInBehaviors(false);
    options.SetShouldSuppressExceptionsInAnimations(false);
})

SetShouldSuppressExceptionsInConverters

设置为 true 时,如果实现 CommunityToolkit.Maui.Converters.BaseConverter 的转换器引发 Exception,则会捕获 Exception,通过 Debug.WriteLine() 记录,并返回预先确定的默认值。

默认值是 false

示例

调用 .UseMauiCommunityToolkit() 时启用此选项:

var builder = MauiApp.CreateBuilder();
builder.UseMauiCommunityToolkit(options =>
{
    options.SetShouldSuppressExceptionsInConverters(true);
})

默认返回值

设置为 true 时,如果 Converter 引发 Exception,将返回默认值。

包括两个默认值:

  • public object? ICommunityToolkitValueConverter.DefaultConvertReturnValue { get; set; }
    • Default value returned when Convert(object? value, Type targetType, object? parameter, CultureInfo? culture) 引发 Exception
  • public object ICommunityToolkitValueConverter.DefaultConvertBackReturnValue { get; set; }
    • Default value returned when ConvertBack(object? value, Type targetType, object? parameter, CultureInfo? culture) 引发 Exception

下面是设置 BoolToObjectConverter 默认值的示例:

XAML

<ContentPage.Resources>
    <SolidColorBrush x:Key="TrueColorBrush">Green</SolidColorBrush>
    <SolidColorBrush x:Key="FalseColorBrush">Red</SolidColorBrush>
    <toolkit:BoolToObjectConverter x:Key="BoolToColorBrushConverter" 
                                TrueObject="{StaticResource TrueColorBrush}" 
                                FalseObject="{StaticResource FalseColorBrush}"
                                DefaultConvertReturnValue="{StaticResource FalseColorBrush}"
                                DefaultConvertBackReturnValue="False"/>
</ContentPage.Resources>

C#

var boolToColorBrushConverter = new BoolToObjectConverter
{
    TrueObject = new SolidColorBrush(Colors.Green),
    FalseObject = new SolidColorBrush(Colors.Red),
    DefaultConvertReturnValue = new SolidColorBrush(Colors.Red),
    DefaultConvertBackReturnValue = false
};

SetShouldSuppressExceptionsInAnimations

设置为 true 时,如果实现 CommunityToolkit.Maui.Behaviors.AnimationBehaviorAnimation 引发 Exception,则会捕获 Exception 并通过 Debug.WriteLine() 记录。

默认值是 false

示例

调用 .UseMauiCommunityToolkit() 时启用此选项:

var builder = MauiApp.CreateBuilder();
builder.UseMauiCommunityToolkit(options =>
{
    options.SetShouldSuppressExceptionsInAnimations(true);
})

SetShouldSuppressExceptionsInBehaviors

设置为 true 时,如果实现 CommunityToolkit.Maui.Behaviors.BaseBehaviorBehavior 引发 Exception,则会捕获 Exception 并通过 Debug.WriteLine() 记录。

默认值是 false

示例

调用 .UseMauiCommunityToolkit() 时启用此选项:

var builder = MauiApp.CreateBuilder();
builder.UseMauiCommunityToolkit(options =>
{
    options.SetShouldSuppressExceptionsInBehaviors(true);
})