如果某些属性具有特定值,我想拒绝删除一行,例如,如果产品类型是 Steel,我想拒绝用户删除该行。我正在为我的数据网格设置源,如下所示:dataGridSourceList = new ObservableCollection<DatabaseItems>(TempController.Instance.SelectItemsByUserId(Globals.CurrentUser.Id));dtgMainItems.ItemsSource = dataGridSourceList;我看到有一个属性CanUserDeleteRows我已经将此添加到 xaml 中我的数据网格的定义中,但我不确定如何正确应用它..CanUserDeleteRows="{Binding ElementName=dtgMainItems, Path=SelectedItem.IsDeleteEnabled}"任何形式的帮助都会很棒谢谢
1 回答

小唯快跑啊
TA贡献1863条经验 获得超2个赞
您可以处理CommandManager.PreviewCanExecute附加的事件:
private void OnPreviewCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
if (e.Command == DataGrid.DeleteCommand)
{
DatabaseItems selectedItem = dtgMainItems.SelectedItem as DatabaseItems;
if (selectedItem != null && !selectedItem.IsDeleteEnabled)
e.Handled = true;
}
}
XAML:
<DataGrid x:Name="dtgMainItems" CommandManager.PreviewCanExecute="Grid_PreviewCanExecute" />
- 1 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消