是否可以在 Silverlight DataTemplate 中绑定事件?如果是这样,最好的方法是什么?
例如,假设您创建了一个包含 Button 的 DataTemplate,如下所示:
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
然后,将它应用到 ListBox ItemTemplate,如下所示:
<Grid x:Name="LayoutRoot" Background="White">
<ListBox x:Name="lbListBox" ItemTemplate="{StaticResource MyDataTemplate}" />
</Grid>
如果将 ListBox 的 ItemSource 设置为该类的对象列表:
public class MyDataClass
{
public string ButtonText{ get; set; }
}
那么如何从列表中的 DataTemplate 中捕获每个按钮的按钮单击?能否使用绑定将 Click 事件绑定到“MyButtonClass”中的方法,如下所示:
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Click="{Binding OnItemButtonClick}" Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
这行得通吗?如果是这样,我应该在“MyDataClass”中添加什么来捕捉事件?
谢谢,杰夫