Eliminare il visibility converter nella Universal Windows Platform

di , in Windows 10,

Per strutturare architetturalmente meglio le applicazioni che sviluppiamo con la Universal Windows Platform, spesso facciamo uso di pattern come Model-View-ViewModel (MVVM) che aiutano ad avere una forte separazione tra quella che è la UI e il resto del codice che contiene la logica di business. Uno svantaggio di questo approccio è che alcune proprietà hanno necessità di fare uso dei converter per essere utilizzate correttamente nella UI, richiedendo quindi logica aggiuntiva: un caso noto è quello relativo alle property booleane, usate spesso per mostrare o nascondere contenuti grafici, hanno bisogno necessariamente del classico "BoolToVisibilityConverter", strutturato più o meno come segue:

public class BoolToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        return (value is bool && (bool)value) 
            ? Visibility.Visible 
            : Visibility.Collapsed;
    }

    // ...
}

<Grid Visibility="{Binding ViewModel.ShowItems, Converter={StaticResource BoolToVisibilityConverter}}" />

Con l'introduzione di Windows 10, e in particolare dell'Anniversary Update, è stata introdotta anche l'estensione di markup x:Bind di cui abbiamo già parlato in alcuni script precedenti, che in alternativa a Binding viene eseguito in minor tempo e con minor consumo di memoria. La particolarità di questa keyword è che permette di effettuare il casting inline, eliminando di fatto l'esigenza di costruire converter aggiuntivi:

<Grid Visibility="{x:Bind (Visibility)ViewModel.ShowItems}" />

Non solo verrà meno l'esigenza di dover scrivere meno codice, ma il tutto risulterà allo stesso tempo più leggibile.

Commenti

Visualizza/aggiungi commenti

Eliminare il visibility converter nella Universal Windows Platform (#232)
| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi