Có thể liên kết Sự kiện trong DataTemplate Silverlight không? Nếu vậy, cách tốt nhất để làm điều đó là gì?Có thể liên kết Sự kiện trong DataTemplate Silverlight không?
Ví dụ giả sử bạn đã tạo ra một DataTemplate mà có một nút trong nó, như thế này:
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
Sau đó, bạn áp dụng nó vào một ListBox ItemTemplate, như thế này:
<Grid x:Name="LayoutRoot" Background="White">
<ListBox x:Name="lbListBox" ItemTemplate="{StaticResource MyDataTemplate}" />
</Grid>
Nếu bạn đặt ItemSource của ListBox thành danh sách các đối tượng của lớp:
public class MyDataClass
{
public string ButtonText{ get; set; }
}
Sau đó bạn bắt thứ Nhấn nút e từ mỗi nút từ DataTemplate trong danh sách? Bạn có thể sử dụng ràng buộc để ràng buộc sự kiện Nhấp vào một phương thức trong "MyButtonClass" hay không, như sau:
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Click="{Binding OnItemButtonClick}" Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
Điều này có hiệu quả không? Nếu vậy, tôi nên đặt gì vào "MyDataClass" để bắt sự kiện?
Cảm ơn, Jeff
Đây chính là lý do tại sao Lệnh tốt hơn. Trong khung công tác .NET 4, bạn có thể ràng buộc các lệnh (không giống như các sự kiện), do đó bạn vẫn có thể sử dụng MVVM mà không có chức năng xem mã-đằng sau và ràng buộc. –