Partilhar via


Conversores .NET MAUI

As associações de dados .NET Multi-platform App UI (.NET MAUI) geralmente transferem dados de uma propriedade de origem para uma propriedade de destino e, em alguns casos, da propriedade de destino para a propriedade de origem. Essa transferência é simples quando as propriedades de origem e destino são do mesmo tipo, ou quando um tipo pode ser convertido para o outro tipo por meio de uma conversão implícita. Quando tal não for o caso, deve proceder-se a uma conversão de tipo.

Para obter mais informações sobre conversores, consulte a documentação do .NET MAUI.

Conversores do .NET MAUI Community Toolkit

O .NET MAUI Community Toolkit fornece uma coleção de conversores pré-construídos e reutilizáveis para facilitar a vida dos desenvolvedores. Aqui estão os conversores fornecidos pelo kit de ferramentas:

Conversor Descrição
BoolToObjectConverter O BoolToObjectConverter é um conversor que permite aos usuários converter uma ligação de bool valor para um objeto específico.
ByteArrayToImageSourceConverter O ByteArrayToImageSourceConverter é um conversor que permite ao utilizador converter um valor de entrada de um byte array e retorna um ImageSource.
ColorToBlackOrWhiteConverter O ColorToBlackOrWhiteConverter é um conversor unidirecional que permite aos utilizadores converter uma entrada Color em um valor monocromático de Colors.Black ou Colors.White.
ColorToByteAlphaConverter O ColorToByteAlphaConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente alfa como um valor entre 0 e 255.
ColorToByteBlueConverter O ColorToByteBlueConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente azul como um valor entre 0 e 255.
ColorToByteGreenConverter O ColorToByteGreenConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente verde como um valor entre 0 e 255.
ColorToByteRedConverter O ColorToByteRedConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente vermelho como um valor entre 0 e 255.
ColorToCmykStringConverter O ColorToCmykStringConverter é um conversor unidirecional que permite aos utilizadores converter uma ligação de valor de Color no seu equivalente CMYK string.
ColorToCmykaStringConverter O ColorToCmykaStringConverter é um conversor unidirecional que permite aos usuários converter uma vinculação de Color valor para seu equivalente CMYKA string .
ColorToColorForTextConverter O ColorToColorForTextConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color em um valor monocromático de qualquer um Colors.Black ou Colors.White com base em se ele é determinado como sendo escuro para o olho humano.
ColorToDegreeHueConverter O ColorToDegreeHueConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente de matiz como um valor entre 0 e 360.
ColorToGrayScaleColorConverter O ColorToGrayScaleColorConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color em uma escala Colorde cinza.
ColorToHexRgbStringConverter O ColorToHexRgbStringConverter é um conversor que permite aos utilizadores converter uma ligação de valor Color para o seu equivalente hexadecimal string RGB.
ColorToHexRgbaStringConverter O ColorToHexRgbaStringConverter é um conversor que permite aos utilizadores converter uma associação de valor de Color para o seu equivalente hexadecimal string RGBA.
ColorToHslStringConverter O ColorToHslStringConverter é um conversor unidirecional que permite aos utilizadores converter uma ligação de valor Color para o seu equivalente HSL string.
ColorToHslaStringConverter O ColorToHslaStringConverter é um conversor unidirecional que permite aos usuários converter uma ligação de valor Color para o seu equivalente HSLA string.
ColorToInverseColorConverter O ColorToInverseColorConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color em seu inverso.
ColorToPercentBlackKeyConverter O ColorToPercentBlackKeyConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente chave como um valor entre 0 e 1.
ColorToPercentCyanConverter O ColorToPercentCyanConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente ciano como um valor entre 0 e 1.
ColorToPercentMagentaConverter O ColorToPercentMagentaConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente magenta como um valor entre 0 e 1.
ColorToPercentYellowConverter O ColorToPercentYellowConverter é um conversor unidirecional que permite aos usuários converter uma entrada Color para o componente amarelo como um valor entre 0 e 1.
ColorToRgbStringConverter O ColorToRgbStringConverter é um conversor que permite aos utilizadores converter uma associação de valor Color para o seu equivalente RGB string.
ColorToRgbaStringConverter O ColorToRgbaStringConverter é um conversor unidirecional que permite aos usuários converter uma vinculação de Color valor para seu equivalente RGBA string .
CompareConverter O CompareConverter é um conversor unidirecional que usa um valor de entrada implementando IComparable, compara a um valor especificado e retorna o resultado da comparação.
DateTimeOffsetConverter O DateTimeOffsetConverter é um conversor que permite aos usuários converter um DateTimeOffset para um DateTime
DoubleToIntConverter O DoubleToIntConverter é um conversor que permite aos usuários converter um valor de entrada double em um int e vice-versa. Opcionalmente, o usuário pode fornecer um multiplicador para a conversão através da Ratio propriedade.
EnumToBoolConverter O EnumToBoolConverter é um conversor unidirecional que permite converter um Enum para um correspondente bool com base em se ele é igual a um conjunto de valores de enum fornecidos. É útil ao vincular uma coleção de valores que representam um tipo de enumeração a uma propriedade de controle booleano como a IsVisible propriedade.
EnumToIntConverter O EnumToIntConverter é um conversor que permite converter um padrão Enum (estendendo int) para seu tipo primitivo int subjacente. É útil ao vincular uma coleção de valores que representam um tipo de enumeração com numeração padrão a um controle como um Picker.
ImageResourceConverter O ImageResourceConverter é um conversor que converte o ID do recurso de imagem incorporado em seu ImageSource.
IndexToArrayItemConverter O IndexToArrayItemConverter é um conversor que permite aos utilizadores converter uma associação de valor int para um item numa matriz. O int valor que está sendo vinculado a dados representa o indexador usado para acessar a matriz. A matriz é passada através do ConverterParameter.
IntToBoolConverter O IntToBoolConverter é um conversor que permite aos usuários converter um valor de entrada int em um bool e vice-versa.
InvertedBoolConverter O InvertedBoolConverter é um conversor que permite aos usuários converter um bool para o seu inverso - true torna-se false e vice-versa.
IsEqualConverter O IsEqualConverter é um conversor unidirecional que retorna uma bool indicação se o valor de ligação é igual a outro valor especificado.
IsInRangeConverter O IsInRangeConverter é um conversor unidirecional que usa um valor de entrada implementando IComparable, e um valor mínimo e máximo, e retorna o resultado do valor estar entre os valores mínimo e máximo.
IsListNotNullOrEmptyConverter O IsListNotNullOrEmptyConverter é um conversor unidirecional que converte IEnumerable em um valor bool.
IsListNullOrEmptyConverter O IsListNullOrEmptyConverter é um conversor unidirecional que converte IEnumerable num valor bool.
IsNotEqualConverter O IsNotEqualConverter é um conversor unidirecional que retorna uma bool indicação se o valor de ligação não é igual a outro valor especificado.
IsNullConverter O IsNullConverter é um conversor que permite aos usuários converter uma ligação de entrada em um bool valor. Esse valor representa se o valor de associação de entrada for nulo.
IsNotNullConverter O IsNotNullConverter é um conversor que permite aos usuários converter uma ligação de entrada em um bool valor. Esse valor representa se o valor de associação de entrada não for nulo.
IsStringNotNullOrEmptyConverter O IsStringNotNullOrEmptyConverter é um conversor unidirecional que retorna um bool indicando se o valor de ligação não é nulo e não um string.Empty.
IsStringNotNullOrWhiteSpaceConverter O IsStringNotNullOrWhiteSpaceConverter é um conversor unidirecional que retorna um bool indicando se o valor de ligação não é nulo, não é um string.Empty e não contém apenas caracteres de espaço em branco.
IsStringNullOrEmptyConverter O IsStringNullOrEmptyConverter é um conversor unidirecional que retorna uma bool indicação se o valor de ligação é nulo ou string.Empty.
IsStringNullOrWhiteSpaceConverter O IsStringNullOrWhiteSpaceConverter é um conversor unidirecional que retorna uma bool indicação se o valor de associação é nulo string.Empty ou contém apenas caracteres de espaço em branco.
ItemTappedEventArgsConverter O ItemTappedEventArgsConverter é um conversor que permite aos usuários extrair o valor Item de um ItemTappedEventArgs objeto. Subsequentemente, ele pode ser usado em combinação com EventToCommandBehavior.
ListToStringConverter O ListToStringConverter é um conversor unidirecional que retorna uma concatenação dos membros de uma coleção, usando o separador especificado entre cada membro.
MathExpressionConverter O MathExpressionConverter é um conversor que permite aos usuários executar várias operações matemáticas.
MultiConverter O MultiConverter converte um valor de entrada usando todos os conversores de entrada em sequência.
MultiMathExpressionConverter O MultiMathExpressionConverter é um conversor que permite aos usuários executar várias operações matemáticas com vários valores através do uso de um MultiBinding.
SelectedItemEventArgsConverter O SelectedItemEventArgsConverter é um conversor que permite aos usuários extrair o valor Item de um SelectedItemEventArgs objeto. Subsequentemente, ele pode ser usado em combinação com EventToCommandBehavior.
StateToBoolConverter O StateToBoolConverter é um conversor unidirecional que retorna um boolean resultado com base em se o valor fornecido é de um tipo específico LayoutState.
StringToListConverter O StringToListConverter é um conversor unidirecional que retorna um conjunto de substrings dividindo a string de entrada com base em um ou mais separadores.
TextCaseConverter O TextCaseConverter é um conversor unidirecional que permite aos usuários converter o invólucro de uma ligação de tipo de entrada string . A Type propriedade é usada para definir que tipo de invólucro será aplicado à cadeia de caracteres.
VariableMultiValueConverter O VariableMultiValueConverter é um conversor que permite aos usuários converter bool valores através de um MultiBinding para um único bool.

Criar um conversor do .NET MAUI Community Toolkit

O .NET MAUI Community Toolkit fornece implementações que garantem a segurança de tipo da interface IValueConverter fornecida pelo .NET MAUI, o que torna mais fácil para os desenvolvedores escreverem conversores mais concisos e seguros de tipo. O kit de ferramentas fornece as seguintes opções

Conversor bidirecional

A BaseConverter classe fornece aos desenvolvedores a capacidade de definir o tipo de valor de entrada e também o tipo de valor de saída para uma IValueConverter implementação que oferece suporte a uma associação bidirecional. O exemplo a seguir mostra como criar um conversor que converterá um bool valor em Colors.Green if true e Colors.Red if false.

public class BoolToColorConverter : BaseConverter<bool, Color>
{
    public override Color DefaultConvertReturnValue { get; set; } = Colors.Orange;

    public override bool DefaultConvertBackReturnValue { get; set; } = false;

    public override string ConvertFrom(bool value, CultureInfo? culture)
    {
        return value ? Colors.Green : Colors.Red;
    }

    public override int ConvertBackTo(Color value, CultureInfo? culture)
    {
        return value == Colors.Green;
    }
}

O DefaultConvertReturnValue será usado pela implementação base e retornado se uma exceção for lançada dentro do ConvertFrom método.

O DefaultConvertBackReturnValue será usado pela implementação base e retornado se uma exceção for lançada dentro do ConvertBackTo método.

Advertência

O conversor lançará um ArgumentException se os valores de entrada ou saída não forem do tipo esperado. O lançamento de exceções pode ser desativado definindo CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters como false.

Conversor unidirecional

A BaseConverterOneWay classe fornece aos desenvolvedores a capacidade de definir o tipo de valor de entrada e também o tipo de valor de saída para uma IValueConverter implementação que oferece suporte a uma associação unidirecional. O exemplo a seguir mostra como criar um conversor que converterá um bool valor em Colors.Green if true e Colors.Red if false.

public class BoolToColorConverter : BaseConverterOneWay<bool, Color>
{
    public override Color DefaultConvertReturnValue { get; set; } = Colors.Orange

    public override string ConvertFrom(bool value, CultureInfo? culture)
    {
        return value ? Colors.Green : Colors.Red;
    }
}

O DefaultConvertReturnValue será usado pela implementação base e retornado se uma exceção for lançada dentro do ConvertFrom método.

Advertência

O conversor lançará um ArgumentException se os valores de entrada ou saída não forem do tipo esperado. O lançamento de exceções pode ser desativado definindo CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters como false. O conversor lançará um NotSupportedException se usado em uma ligação bidirecional.