¿Es posible enlazar un evento en un DataTemplate de Silverlight? Si es así, ¿cuál es la mejor manera de hacerlo?¿Es posible enlazar un evento en un DataTemplate de Silverlight?
Por ejemplo, digamos que usted ha creado un DataTemplate que tiene un botón en ella, así:
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
A continuación, aplicarlo a un cuadro de lista ItemTemplate, así:
<Grid x:Name="LayoutRoot" Background="White">
<ListBox x:Name="lbListBox" ItemTemplate="{StaticResource MyDataTemplate}" />
</Grid>
Si establece ItemSource del ListBox a una lista de objetos de la clase:
public class MyDataClass
{
public string ButtonText{ get; set; }
}
entonces, ¿cómo se contagia º e Haga clic en el botón de cada botón del DataTemplate en la lista? Se puede utilizar el enlace para enlazar el evento Click de un método en el "MyButtonClass", así:
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Click="{Binding OnItemButtonClick}" Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
Que este trabajo? Si es así, ¿qué debería poner en "MyDataClass" para ver el evento?
Gracias, Jeff
Esto es exactamente por qué los comandos son mejores. En el marco de .NET 4, puede vincular comandos (a diferencia de los eventos) para que pueda seguir utilizando MVVM sin funcionalidad de vinculación AND de código de vista. –