Dans une application WPF, j'ai un tas de CustomControls dans une grille. Pour le traitement de clics de souris sur eux, j'utiliser l'événement MouseLeftButtonDown
de la grille et dans le gestionnaire d'événements que je vérifie qui CustomControl a été cliqué:WPF FrameworkElement Mouse Cliquez sur le numéro
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement feSourceComm = e.Source as FrameworkElement;
MyCustomControl SCurrentComm = new MyCustomControl();
try
{
SCurrentComm = (MyCustomControl)feSourceComm;
}
catch (Exception)
{
...
Le problème est apparu lorsque je place tous CustomControls dans un UserControl puis à l'intérieur de la grille. Dans ce cas, l'approche ne fonctionne pas.
J'ai vérifié le type de clic source dans chaque cas par e.Source.GetType().ToString();
et obtenir les résultats suivants:
Quand il n'y a pas de problème (dans le cas où je mets CustomControls dans la grille sans UserControl)
MyProjectNamespace.MyCustomControl
quand je mets CustomControls dans le UserControl puis dans la grille
MyProjectNamespace.UserControls.MyUserControlName
quand je mets CustomControls dans le UserCo ntrol puis dans la grille et charger le UserControl de fichier externe par XamlReader.Load
System.Windows.Controls.UserControl
Alors, ma question:
Comment faire CustomControls Vizible comme e.Source
quand ils sont à l'intérieur d'un UserControl?
Oui, ça marche. Merci! +1 – rem