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
Integrare Agenti A2A in Azure API Management
Supportare la crittografia di ASP.NET Core con Azure Container App
Monitorare le tabelle di Azure SQL Database con Change Event Streaming
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Arricchire l'interfaccia di .NET Aspire
Filtrare i dati in ASP.NET Core usando OpenTelemetry su Azure Monitor
Personalizzare le pagine di errore su Azure App Service
Mischiare codice server side e client side in una query LINQ con Entity Framework
Ridurre il reflow cambiando il CSS
Configurare automaticamente un webhook in Azure DevOps
Gestire pubblicazione Kubernetes tramite .NET Aspire
Recuperare le subissue e il loro stato di completamento in GitHub




