我有一个带有删除按钮的数据网格 XAML 看起来像:
<sdk:DataGridTemplateColumn Header="Del/Tgl" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Delete"
Command="{Binding DeleteRowCommand}"
CommandParameter="{Binding Column}"
/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
我通过复制 John Papa 的代码将 ICommand 实现为 DelegateCommand。我向我的 ViewModel 添加了一个公共属性:
public ICommand DeleteRowCommand {get;set;}
在我的 viewModel 的构造函数中,我设置了命令:
this.DeleteRowCommand = new DelegateCommand(onDelete, CanDelete);
最后定义了onDelete
, 和CanDelete
:
private void onDelete(object param)
{
// Get the Column Name
string strColumnName = param as string ?? string.Empty;
}
private bool CanDelete(object param)
{
// If we ae here we can delete the row
return true;
}
一切都在我的 Silvelight 网格上运行,但单击删除按钮,我从不去onDelete
运行。我究竟做错了什么?