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
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Testare il failover sulle region in Azure Storage
Utilizzare Containers in .NET Aspire
Recuperare App Service cancellati su Azure
Configurare automaticamente un webhook in Azure DevOps
Creare agenti facilmente con Azure AI Agent Service
Gestire gli errori nelle Promise JavaScript con try()
Change tracking e composition in Entity Framework
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Utilizzare Intersect e Except per filtrare set di dati in TSql
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Gestire progetti .NET + React in .NET Aspire