Domanda

Ho un UserControl, quello predefinito generato da VS, è stato aggiunto solo 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>

Ora inserisco dinamicamente diverse istanze di questo controllo in WrapPanel del controllo principale dal codice sottostante. Voglio gestire tutti i clic del pulsante sinistro del mouse dalle istanze di MyControl. Ho il seguente codice:

<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>

Nel gestore dell'evento faccio qualche azione e funziona. Tuttavia ottengo il seguente errore durante la modifica del file XAML: La proprietà collegabile 'MouseLeftButtonDown' non è stata trovata nel tipo 'MyControl'. Come risolvere questo problema?

È stato utile?

Soluzione

Questo è solo un bug con il compilatore / designer XAML e può essere tranquillamente ignorato. Tuttavia, potresti essere in grado di " correggere " specificando un tipo di cui è più intimamente consapevole:

UIElement.MouseLeftButtonDown="WrapPanel1_OnMouseLeftButtonDown"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top