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
Blue/Green Release in locale con .NET Aspire
.NET Aspire vs Dapr: differenze, sovrapposizioni e integrazione
Blazor e Static Web Assets in .NET 10
DevSecOps per .NET: dalla teoria alla pratica
Nuova modale riconnessione Blazor
Referenziare un package NuGet in una file based app .NET
Bloccare il traffico di rete in uscita dal runner di GitHub
Keynote Global Azure 2026 - ASPItalia.com
Utilizzare le View Transition API di JavaScript
Creare un file Zip partendo da uno stream sfruttando le classi del namespace System.IO.Compression
Creare una file based app con C#
Ottimizzare gli indici con Automatic Index Compaction in Azure SQL Database
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Utilizzare un DataContext specifico per la modalità design time di Blend e Visual Studio nei controlli Silverlight
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Gli oggetti CallOut di Expression Blend 4.0
- Le DirectInk API nella Universal Windows Platform
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Esaminare documenti con namespace con LINQ e XDocument


