Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Oferece a capacidade de definir uma implementação FuncConverter em linha ao construir a sua interface de utilizador IValueConverter. Um benefício adicional de usar esta FuncConverter implementação é que oferece uma forma segura de realizar as suas conversões. O pacote C# Markup utiliza internamente o FuncConverter para a opção de conversão em linha no método de extensão Bind.
Observação
FuncConverter Só suporta um único Binding valor; se precisar MultiBinding de suporte, consulte FuncMultiConverter.
O conversor oferece várias formas diferentes de definir a sua conversão com base na quantidade de informação necessária.
FuncConverter<TSource>
A FuncConverter<TSource> implementação permite-lhe definir um processo de conversão que fornece apenas um valor de entrada com segurança de tipo.
O exemplo seguinte mostra como construir um conversor que converte entre TimeSpan e double, expressos em segundos:
var converter = new FuncConverter<TimeSpan>(
convert: (time) => time.TotalSeconds,
convertBack: (value) => TimeSpan.FromSeconds((double)value));
Ambos os convert parâmetros e convertBack são opcionais para permitir que os programadores definam apenas o que é necessário.
Notará que o método convertBack não parece ser seguro em termos de tipos neste caso.
FuncConverter<TSource, TDest>
A implementação FuncConverter<TSource, TDest> permite-lhe definir um processo de conversão que fornece um valor de entrada com segurança de tipo e um valor de retorno com segurança de tipo.
Usando o mesmo exemplo acima, podemos tornar o convertBack tipo de implementação seguro e mais fácil de ler:
var converter = new FuncConverter<TimeSpan, double>(
convert: (time) => time.TotalSeconds,
convertBack: (seconds) => TimeSpan.FromSeconds(seconds));
Ambos os convert parâmetros e convertBack são opcionais para permitir que os programadores definam apenas o que é necessário.
FuncConverter<TSource, TDest, TParam>
A FuncConverter<TSource, TDest, TParam> implementação permite-lhe definir um processo de conversão que fornece um valor de entrada de tipo seguro, um valor de retorno de tipo seguro e um valor de retorno de tipo ConverterParameterseguro.
Usando o mesmo exemplo anterior, podemos incluir o ConverterParameter a partir de Binding:
var converter = new FuncConverter<TimeSpan, double, int>(
convert: (time, offset) => time.TotalSeconds + offset,
convertBack: (seconds, offset) => TimeSpan.FromSeconds(seconds - offset));
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 FuncConverter no repositório GitHub Community Toolkit .NET MAUI.
.NET MAUI Community Toolkit