Condividi tramite


FuncMultiConverter

FuncMultiConverter offre la possibilità di definire un'implementazione IMultiValueConverter inline durante la compilazione dell'interfaccia utente. Un vantaggio aggiuntivo dell'uso dell'implementazione consiste nel FuncMultiConverter fatto che offre un modo sicuro per eseguire le conversioni. Il pacchetto di markup C# usa internamente l'opzione FuncMultiConverter per più associazioni nel Bind metodo di estensione.

Nota

FuncMultiConverter supporta solo un MultiBinding, se è necessario Binding il supporto, fare riferimento a MultiConverter.

Il convertitore offre molti modi diversi per definire la conversione in base alla quantità di informazioni necessarie.

FuncMultiConverter<TSource1, TSource2, TDest>

L'implementazione FuncMultiConverter<TSource1, TSource2, TDest> consente di definire un processo di conversione che fornisce valori in ingresso sicuri del tipo e un valore restituito sicuro del tipo. Questa implementazione prevede esattamente 2 valori in ingresso.

Nell'esempio seguente viene illustrato come creare un convertitore che convertirà 2 s in ingresso stringin un punto e virgola separato da string:

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]);
    });

Entrambi i convert parametri e convertBack sono facoltativi per consentire agli sviluppatori di definire solo ciò che è necessario.

Nota

FuncMultiConverter supporta fino a 4 valori in ingresso tipizzati.

FuncMultiConverter<TSource1, TSource2, TDest, TParam>

L'implementazione FuncMultiConverter<TSource1, TSource2, TDest> consente di definire un processo di conversione che fornisce valori in ingresso sicuri del tipo, un valore restituito indipendente dai tipi e un tipo sicuro ConverterParameter. Questa implementazione prevede esattamente 2 valori in ingresso.

Nell'esempio seguente viene illustrato come compilare un convertitore che converte 2 s in ingresso stringin un carattere fornito dall'oggetto ConverterParameter separato string:

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]);
    });

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 FuncMultiConverter funzionalità nel repository GitHub di .NET MAUI Community Toolkit.