Tengo un control de usuario personalizado que tiene algunos cuadros de texto y algunos botones. En mi aplicación principal (MainWindow.xaml) utilizo este control así:

<ScrollViewer Grid.Column="1" 
              VerticalScrollBarVisibility="Auto" 
              HorizontalScrollBarVisibility="Auto" 
              MaxHeight="300" Width="Auto" 
              HorizontalAlignment="Left">
    <StackPanel x:Name="MyStackPanel" 
                Margin="10,0,10,0" 
                MaxHeight="300" Width="Auto">
        <ItemsControl ItemsSource="{Binding}" 
                      x:Name="MyItemsControl" 
                      BorderThickness="0" 
                      Background="Transparent">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <local:MyCustomControl/>
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </StackPanel>
</ScrollViewer>

El DataContext de ItemsControl es una tabla del DataSet. Cada cuadro de texto del control personalizado está vinculado a algún campo de la tabla. Quiero implementar un evento de clic de algún botón en el control personalizado en MainWindow.xaml.cs, no en el control personalizado detrás del código. ¿Cómo puedo hacerlo? Gracias.

1
N.D 20 feb. 2012 a las 14:42

1 respuesta

La mejor respuesta

Debe crear un nuevo evento en el control personalizado y activar este evento en el evento de clic en el botón en el código detrás del control personalizado.

2
Martin Liversage 20 feb. 2012 a las 14:49
En el código detrás del control personalizado no puedo implementar el evento de clic, porque necesito hacer algunas operaciones en MainWindow.xaml.cs. Pero en MainEindow.xaml no puedo acceder al evento button.click del control personalizado porque está en ItemTemlate .....
 – 
N.D
20 feb. 2012 a las 14:52
@ N.D: puede declarar nuevos eventos en controles personalizados y puede activar este evento en el código detrás de su control personalizado. Luego puede suscribirse a este nuevo evento en su ventana principal.
 – 
Martin Liversage
20 feb. 2012 a las 15:05