Es posible vincular un evento en una plantilla de datos de Silverlight?

¿Es posible vincular un evento en una plantilla de datos de Silverlight? Si es así, ¿cuál es la mejor manera de hacerlo?

Por ejemplo, supongamos que ha creado un DataTemplate que tiene un botón, como este:

<UserControl.Resources>
  <DataTemplate x:Key="MyDataTemplate" >
     <Grid>
        <Button Content="{Binding ButtonText}" Margin="4" />
     </Grid>
  </DataTemplate>
</UserControl.Resources>

A continuación, lo aplica a una plantilla de elemento ListBox, como esta:

<Grid x:Name="LayoutRoot" Background="White">
  <ListBox x:Name="lbListBox" ItemTemplate="{StaticResource MyDataTemplate}" />    
</Grid>

Si establece el ItemSource de ListBox en una lista de objetos de la clase:

public class MyDataClass
{
  public string ButtonText{ get; set; }
}

¿Cómo captura el clic de cada botón de DataTemplate en la lista? ¿Se puede usar el enlace para vincular el evento Click a un método en "MyButtonClass", como este:

<UserControl.Resources>
  <DataTemplate x:Key="MyDataTemplate" >
     <Grid>
        <Button Click="{Binding OnItemButtonClick}" Content="{Binding ButtonText}" Margin="4" />
     </Grid>
  </DataTemplate>
</UserControl.Resources>

¿Funcionaría esto? Si es así, ¿qué debo poner en "MyDataClass" para ver el evento?

Gracias, Jeff

Respuestas a la pregunta(2)

Su respuesta a la pregunta