WPF manipulação RoutedEvent de UserControl
-
06-07-2019 - |
Pergunta
Eu tenho um UserControl, um padrão gerado pelo VS, só é adicionado TextBlock:
<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>
Agora, eu coloquei várias instâncias desse controle em WrapPanel do controle pai dinamicamente a partir de trás código. Eu quero lidar com todos os cliques botão esquerdo do mouse de casos myControl. Eu tenho seguinte código:
<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>
No manipulador de eventos que faço alguma ação, e ele funciona. No entanto eu recebo o seguinte erro ao editar o arquivo XAML: A propriedade acoplável 'MouseLeftButtonDown' não foi encontrado no tipo 'MyControl'. Como corrigir isso?
Solução
Este é apenas um bug com o XAML compilador / designer e pode ser ignorada com segurança. No entanto, você pode ser capaz de "correção"-lo especificando um tipo que é mais intimamente consciente de:
UIElement.MouseLeftButtonDown="WrapPanel1_OnMouseLeftButtonDown"