In Silverlight 5 è stato aggiunto il supporto nativo al doppio click attraverso la proprietà ClickCount di MouseButtonEventArgs, parametro principalmente degli eventi MouseLeftButtonDown e MouseRightButtonDown.
In un contesto Model-View-ViewModel è possibile utilizzare comunque questa proprietà grazie alla possibilità offerta dal behavior EventToCommand del toolkit MVVM Light di Laurent Bugnion.
Questo behavior permette di invocare un Command a seguito di un qualunque evento di un oggetto, inoltre grazie alla proprietà PassEventArgsToCommand è possibile passare l'argomento del gestore dell'evento al Command, utile proprio allo scopo di passare il numero di click consecutivi.
... xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.SL4" ... <TextBlock Text="click"> <i:Interaction.Triggers> <i:EventTrigger EventName="MouseLeftButtonDown"> <cmd:EventToCommand Command="{Binding ClickCommand, Mode=OneWay}" PassEventArgsToCommand="True"> </cmd:EventToCommand> </i:EventTrigger> </i:Interaction.Triggers> </TextBlock>
Il Command ClickCommand può essere definito nel modo seguente:
private RelayCommand<MouseButtonEventArgs> clickCommand; public RelayCommand<MouseButtonEventArgs> ClickCommand { get { return this.clickCommand ?? (this.clickCommand = new RelayCommand<MouseButtonEventArgs>( (args) => { var clickCount = args.ClickCount.ToString(); }, (args) => { return true; })); } }
L'MVVM Light toolkit è scaricabile su Codeplex all'indirizzo http://mvvmlight.codeplex.com/.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Usare le collection expression per inizializzare una lista di oggetti in C#
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Ottimizzazione dei block template in Angular 17
Utilizzare il trigger SQL con le Azure Function
Utilizzare Model as a Service su Microsoft Azure
Determinare lo stato di un pod in Kubernetes
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Sfruttare lo streaming di una chiamata Http da Blazor
Utilizzare i primary constructor in C#
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
I più letti di oggi
- segui live #futuredecoded da Roma dalle 9:30 su http://www.communitydays.it
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- #wcfRIAservices è pronto: http://u.aspitalia.com/d4. se vuoi un'introduzione, la nostra è su http://u.aspitalia.com/d3
- Cambiare la chiave di partizionamento di Azure Cosmos DB