FuncMultiConverter

Oferece a capacidade de definir uma implementação FuncMultiConverter em linha ao construir a sua interface de utilizador IMultiValueConverter. Um benefício adicional de usar esta FuncMultiConverter implementação é que oferece uma forma segura de realizar as suas conversões. O pacote C# Markup utiliza internamente o FuncMultiConverter para a opção de múltiplas associações no método de extensão Bind.

Observação

FuncMultiConverter suporta apenas MultiBinding; se necessitar de suporte para Binding, consulte MultiConverter.

O conversor oferece várias formas diferentes de definir a sua conversão com base na quantidade de informação necessária.

FuncMultiConverter<TSource1, TSource2, TDest>

A FuncMultiConverter<TSource1, TSource2, TDest> implementação permite-lhe definir um processo de conversão que fornece valores recebidos seguros por tipo e um valor de retorno seguro para tipos. Esta implementação espera exatamente 2 valores recebidos.

O exemplo seguinte mostra como criar um conversor que converterá 2 string de entrada num 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]);
    });

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

Observação

FuncMultiConverter suporta até 4 valores de entrada tipados.

FuncMultiConverter<TSource1, TSource2, TDest, TParam>

A implementação FuncMultiConverter<TSource1, TSource2, TDest> permite-lhe definir um processo de conversão que fornece valores de entrada com segurança de tipo, um valor de retorno com segurança de tipo e um ConverterParameter com segurança de tipo. Esta implementação requer exatamente 2 valores de entrada.

O exemplo seguinte mostra como construir um conversor que converta 2 ocorrências de string de entrada no caráter 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]);
    });

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

API

Pode encontrar o código-fonte da funcionalidade FuncMultiConverter no repositório GitHub Community Toolkit .NET MAUI.