WPF traitant RoutedEvent de UserControl
-
06-07-2019 - |
Question
J'ai un UserControl, celui par défaut généré par VS, seul TextBlock est ajouté:
<UserControl x:Class="MyNameSpace.Presentation.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="myControl">
<Grid>
<TextBlock x:Name="SomeTextBox" Text="SomeText"></TextBlock>
</Grid>
Maintenant, j'ai placé plusieurs instances de ce contrôle dans le WrapPanel du contrôle parent de manière dynamique à partir du code situé derrière. Je souhaite gérer tous les clics du bouton gauche de la souris à partir d'instances MyControl. J'ai le code suivant:
<UserControl x:Class="Minimo.Presentation.FirstParent"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Presentation="clr-namespace:Minimo.Presentation"
Height="300" Width="300">
<WrapPanel Name="wrapPanelOfMyControls" MyControl.MouseLeftButtonDown="WrapPanel1_OnMouseLeftButtonDown">
</WrapPanel>
Dans le gestionnaire d'événements, je fais des actions, et cela fonctionne. Cependant, le message d'erreur suivant s'affiche lors de la modification du fichier XAML: La propriété connectable 'MouseLeftButtonDown' n'a pas été trouvée dans le type 'MyControl'. Comment résoudre ce problème?
La solution
Ceci est juste un bogue avec le compilateur / concepteur XAML et peut être ignoré en toute sécurité. Cependant, vous pourrez peut-être "réparer" en spécifiant un type dont il est plus intimement conscient:
UIElement.MouseLeftButtonDown="WrapPanel1_OnMouseLeftButtonDown"