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
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Utilizzare Tailwind CSS all'interno di React: installazione
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Generare file per il download da Blazor WebAssembly
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Effettuare il binding di date in Blazor
Reactive form tipizzati con modellazione del FormBuilder in Angular
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Eseguire operazioni con timeout in React
Creare un'applicazione React e configurare Tailwind CSS
Eseguire query verso tipi non mappati in Entity Framework Core
Controllare gli accessi IP alle app con Azure Container Apps