如何根据类属性值拒绝删除行?C# WPF

如果某些属性具有特定值,我想拒绝删除一行,例如,如果产品类型是 Steel,我想拒绝用户删除该行。


我正在为我的数据网格设置源,如下所示:


dataGridSourceList = new ObservableCollection<DatabaseItems>(TempController.Instance.SelectItemsByUserId(Globals.CurrentUser.Id));

dtgMainItems.ItemsSource = dataGridSourceList;

我看到有一个属性CanUserDeleteRows


我已经将此添加到 xaml 中我的数据网格的定义中,但我不确定如何正确应用它..


CanUserDeleteRows="{Binding ElementName=dtgMainItems, Path=SelectedItem.IsDeleteEnabled}"

任何形式的帮助都会很棒谢谢


慕的地6264312
浏览 136回答 1
1回答

小唯快跑啊

您可以处理CommandManager.PreviewCanExecute附加的事件:private void OnPreviewCanExecute(object sender, CanExecuteRoutedEventArgs e){&nbsp; &nbsp; if (e.Command == DataGrid.DeleteCommand)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; DatabaseItems selectedItem = dtgMainItems.SelectedItem as DatabaseItems;&nbsp; &nbsp; &nbsp; &nbsp; if (selectedItem != null && !selectedItem.IsDeleteEnabled)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.Handled = true;&nbsp; &nbsp; }}XAML:<DataGrid x:Name="dtgMainItems" CommandManager.PreviewCanExecute="Grid_PreviewCanExecute" />
打开App,查看更多内容
随时随地看视频慕课网APP