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 string
s 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 string
s 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.
.NET MAUI Community Toolkit