Partilhar via


FuncMultiConverter

O FuncMultiConverter fornece a capacidade de definir uma implementação IMultiValueConverter embutida ao criar sua interface do usuário. Um benefício adicional de usar a implementação FuncMultiConverter é que ela fornece uma maneira segura de tipo de executar suas conversões. O pacote de marcação C# usa o FuncMultiConverter internamente para a opção de várias associações no método de extensão Bind.

Observação

FuncMultiConverter só dá suporte a um MultiBinding. Se você precisar de suporte para Binding, consulte MultiConverter.

O conversor oferece muitas maneiras diferentes de definir sua conversão com base na quantidade de informações necessárias.

FuncMultiConverter<TSource1, TSource2, TDest>

A implementação FuncMultiConverter<TSource1, TSource2, TDest> permite definir um processo de conversão que fornece valores de entrada fortemente tipados e um valor de retorno fortemente tipado. Essa implementação espera exatamente dois valores de entrada.

O exemplo a seguir mostra como criar um conversor que converterá dois strings de entrada em um string separado por ponto e vírgula:

var converter = new FuncMultiConverter<string, string, string>(
    convert: ((string First, string Second) lines) => string.Join(';', lines.First, lines.Second),
    convertBack: (text) =>
    {
        var lines = text.Split(';');

        return (lines[0], lines[1]);
    });

Os parâmetros convert e convertBack são opcionais para permitir que os desenvolvedores definam apenas o que é necessário.

Observação

FuncMultiConverter dá suporte a até quatro valores de entrada tipados.

FuncMultiConverter<TSource1, TSource2, TDest, TParam>

A implementação FuncMultiConverter<TSource1, TSource2, TDest> permite definir um processo de conversão que fornece valores de entrada fortemente tipados, um valor de retorno fortemente tipado e um ConverterParameter fortemente tipado. Essa implementação espera exatamente dois valores de entrada.

O exemplo a seguir mostra como criar um conversor que converterá dois strings de entrada em um caractere fornecido pelo string separado por ConverterParameter :

var converter = new FuncMultiConverter<string, string, string, char>(
    convert: ((string First, string Second) lines, char separator) => string.Join(separator, lines.First, lines.Second),
    convertBack: (text, char separator) =>
    {
        var lines = text.Split(separator);

        return (lines[0], lines[1]);
    });

Os parâmetros convert e convertBack são opcionais para permitir que os desenvolvedores definam apenas o que é necessário.

API

Você pode encontrar o código-fonte do recurso FuncMultiConverter no repositório do GitHub do.NET MAUI Community Toolkit.