Una delle feature più richieste dalla community Xamarin, è la possibilità di effettuare il binding attraverso più proprietà distinte. Questo è possibile, a partire da Xamarin 4.7, tramite l'uso del "controllo" MultiBinding:
<Label> <Label.Text> <MultiBinding StringFormat="{}{0} {1} {2}"> <Binding Path="Persona.Nome" /> <Binding Path="Persona.Cognome" /> <Binding Path="Persona.AnnoDiNascita" /> </MultiBinding> </Label.Text> </Label>
In questo caso, il vantaggio è che viene gestito tutto da XAML, non abbiamo avuto la necessità di dover trasformare all'interno del modello la proprietà, crearne una ad-hoc per il binding o farne un ToString().
Tramite l'implementazione dell'interfaccia IMultiValueConverter, invece, è anche possibile gestire tutti i valori forniti all'interno di un converter.
<MultiBinding Converter="{StaticResource AllTrueConverter}"> <Binding Path="Example.IsMale" /> <Binding Path="Example.IsMoreThan30" /> </MultiBinding>
Nell'esempio evidenziato il valore ritornato dal converter potrà essere assengato, ad esempio, ad un controllo di tipo CheckBox, solo nel caso in cui entrambi i valori siano validati:
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { foreach (var value in values) { if (!(value is bool b)) { return false; } else if (!b) { return false; } } return true; }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evitare il flickering dei componenti nel prerender di Blazor 8
Migliorare l'organizzazione delle risorse con Azure Policy
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Routing statico e PreRendering in una Blazor Web App
Ordine e importanza per @layer in CSS
Migrare una service connection a workload identity federation in Azure DevOps
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Recuperare App Service cancellati su Azure
Change tracking e composition in Entity Framework
Disabilitare automaticamente un workflow di GitHub (parte 2)
Miglioramenti nell'accessibilità con Angular CDK
Creare alias per tipi generici e tuple in C#
I più letti di oggi
- Simulare Azure Cosmos DB in locale con Docker
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2024 - Milano
- .NET Conference Italia 2023 - Milano e Online