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
Configurare OpenAI in .NET Aspire
Integrazione di Copilot in .NET Aspire
Proteggere l'endpoint dell'agente A2A delle Logic App
Abilitare il rolling update su Azure Functions flex consumption
Montare Azure Blob Storage su Linux con BlobFuse2
Implementare il throttle in JavaScript
.NET Aspire per applicazioni distribuite
Effettuare un clone parziale di un repository di GitHub
Gestione file Javascript in Blazor con .NET 9
Supportare la crittografia di ASP.NET Core con Azure Container App
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Gestire gli errori nelle Promise JavaScript con try()
I più letti di oggi
- Inserire le news di Punto Informatico nel proprio sito
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Sfruttare una CDN con i bundle di ASP.NET
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Le DirectInk API nella Universal Windows Platform
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0


