FuncConverter
FuncConverter
offre la possibilità di definire un'implementazione IValueConverter
inline durante la compilazione dell'interfaccia utente. Un vantaggio aggiuntivo dell'uso dell'implementazione consiste nel FuncConverter
fatto che offre un modo sicuro per eseguire le conversioni. Il pacchetto di markup C# usa internamente l'opzione FuncConverter
di conversione inline nel Bind
metodo di estensione.
Nota
FuncConverter
supporta solo un singolo Binding
valore, se è necessario MultiBinding
il supporto si riferisce a FuncMultiConverter
.
Il convertitore offre molti modi diversi per definire la conversione in base alla quantità di informazioni necessarie.
FuncConverter<TSource>
L'implementazione FuncConverter<TSource>
consente di definire un processo di conversione che fornisce solo un valore in ingresso sicuro di tipo.
Nell'esempio seguente viene illustrato come creare un convertitore che convertirà tra un TimeSpan
oggetto e un double
oggetto espresso in secondi:
var converter = new FuncConverter<TimeSpan>(
convert: (time) => time.TotalSeconds,
convertBack: (value) => TimeSpan.FromSeconds((double)value));
Entrambi i convert
parametri e convertBack
sono facoltativi per consentire agli sviluppatori di definire solo ciò che è necessario.
Si noterà che il metodo non viene visualizzato come sicuro per il convertBack
tipo qui.
FuncConverter<TSource, TDest>
L'implementazione FuncConverter<TSource, TDest>
consente di definire un processo di conversione che fornisce un valore in ingresso sicuro del tipo e un valore restituito indipendente dai tipi.
Usando lo stesso esempio riportato in precedenza, è possibile rendere il convertBack
tipo di implementazione sicuro e più semplice da leggere:
var converter = new FuncConverter<TimeSpan, double>(
convert: (time) => time.TotalSeconds,
convertBack: (seconds) => TimeSpan.FromSeconds(seconds));
Entrambi i convert
parametri e convertBack
sono facoltativi per consentire agli sviluppatori di definire solo ciò che è necessario.
FuncConverter<TSource, TDest, TParam>
L'implementazione FuncConverter<TSource, TDest, TParam>
consente di definire un processo di conversione che fornisce un valore in ingresso indipendente dai tipi, un valore restituito indipendente dai tipi e un tipo sicuro ConverterParameter
.
Usando lo stesso esempio riportato in precedenza, è possibile includere da ConverterParameter
Binding
:
var converter = new FuncConverter<TimeSpan, double, int>(
convert: (time, offset) => time.TotalSeconds + offset,
convertBack: (seconds, offset) => TimeSpan.FromSeconds(seconds - offset));
Entrambi i convert
parametri e convertBack
sono facoltativi per consentire agli sviluppatori di definire solo ciò che è necessario.
API
È possibile trovare il codice sorgente per la FuncConverter
funzionalità nel repository GitHub di .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per