Applicazioni moderne si basano spesso sul pattern MVVM per il layer di presentazione. Nonostante questo pattern sia conosciuto ormai dalla nascita di WPF, ancora oggi i controlli non offrono un supporto ottimale e necessitano di un po' di lavoro.
Ad esempio nel caso del controllo ListView non è possibile associare un Command da eseguire alla pressione di un elemento: per far questo possiamo usare i Behavior.
In particolare, ci torna utile il Behavior InvokeCommandAction, che permette di associare ad un qualsiasi evento un comando da eseguire. Possiamo convertire gli argomenti dell'evento in qualcosa di utilizzabile per i ViewModel, sfruttando un converter e impostando la proprietà InputConverter esposta dalla classe InvokeCommandAction.
public class ListItemEventArgsConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var args = value as ItemClickEventArgs;
if (args != null)
{
return args.ClickedItem;
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}Il codice è semplicissimo: il converter recupera l'elemento su cui l'utente ha premuto, attraverso l'oggetto ItemClickEventArgs e, successivamente, viene passato al metodo richiamato dal command.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire codice JavaScript con code splitting e lazy loading
Proteggere l'endpoint dell'agente A2A delle Logic App
Ottimizzare le performance usando Span<T> e il metodo Split
Creare un agente A2Acon Azure Logic Apps
Esporre un server MCP con Azure API Management
Creare comandi nella dashboard .NET Aspire
Supportare la sessione affinity di Azure App Service con Application Gateway
Gestire gli errori nelle Promise JavaScript con try()
Eliminare record doppi in Sql Server
Abilitare .NET 10 su Azure App Service e Azure Functions
Gestire pubblicazione Kubernetes tramite .NET Aspire
Utilizzare Containers in .NET Aspire
I più letti di oggi
- Unire liste tramite il Metodo Union di LINQ
- Effettuare il backup dell'event viewer con LINQ to XML
- Eseguire query in contemporanea con EF
- Eseguire query con LINQ
- Eseguire una query su file XML con LINQ
- Ottimizzare le performance di una query LINQ To SQL
- Eseguire una GroupBy per entity in Entity Framework
- Salvare una stringa XML in un file con LINQ To XML
- Eliminare record doppi in Sql Server
- Loggare le query più lente con Entity Framework


