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 in contemporanea con EF
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Usare il colore CSS per migliorare lo stile della pagina
Creare una libreria CSS universale - Rotazione degli elementi
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Loggare le query più lente con Entity Framework
Fornire parametri ad un Web component HTML
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Migliorare l'organizzazione delle risorse con Azure Policy
Recuperare l'ultima versione di una release di GitHub
I più letti di oggi
- Organizzare i moduli sfruttando CommonJS in Javascript
- Proteggere le risorse Azure con private link e private endpoints
- Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
- Utilizzare le local static function di C# 8
- Real Code Day - Firenze
- WPC 2011 - Assago (MI)
- Disponibile il codice sorgente di Moonlight
- ADO.NET Data Services Silverlight 2 Beta2 Client library Refresh
- Rilasciata la versione beta dei Windows Phone 7 Developer Tools
- WinPhoneItalia.com: dal 15 settembre tutto per sviluppare per Windows Phone e mobile