从Silverlight和MVVM中的DataGrid中的按钮触发事件,可以按照以下步骤进行:
以下是一个示例代码:
ViewModel中的代码:
public class MainViewModel : ViewModelBase
{
public ObservableCollection<Item> Items { get; set; }
public ICommand ButtonCommand { get; set; }
public MainViewModel()
{
Items = new ObservableCollection<Item>();
ButtonCommand = new RelayCommand(ButtonClick);
}
private void ButtonClick(object parameter)
{
// 处理按钮点击事件的逻辑
}
}
public class Item : INotifyPropertyChanged
{
// 实现INotifyPropertyChanged接口的代码
}
XAML中的代码:
<DataGrid ItemsSource="{Binding Items}">
<DataGrid.Columns>
<!-- 其他列定义 -->
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Click" Command="{Binding DataContext.ButtonCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}" CommandParameter="{Binding}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
这样,当DataGrid中的按钮被点击时,ViewModel中的ButtonClick方法会被调用,你可以在该方法中处理按钮点击事件的逻辑。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云