您的位置:首页 > 教育 > 锐评 > 中国科技成就作文_手机上的html编辑器_天门网站建设_优化大师官网下载

中国科技成就作文_手机上的html编辑器_天门网站建设_优化大师官网下载

2025/5/17 12:03:03 来源:https://blog.csdn.net/u014018281/article/details/143018217  浏览:    关键词:中国科技成就作文_手机上的html编辑器_天门网站建设_优化大师官网下载
中国科技成就作文_手机上的html编辑器_天门网站建设_优化大师官网下载
<DataGridAutoGenerateColumns="False"CanUserAddRows="False"Grid.Row="1"KeyDown="DataGrid_OnKeyDown"PreviewKeyDown="DataGrid_OnPreviewKeyDown"RowHeight="28"SelectedCellsChanged="DataGrid_OnSelectedCellsChanged"SelectionUnit="CellOrRowHeader"x:Name="DataGrid"><DataGrid.Columns><DataGridTextColumnBinding="{Binding Value}"Header="文件"Width="*"><DataGridTextColumn.ElementStyle><Style TargetType="TextBlock"><Setter Property="VerticalAlignment" Value="Center" /></Style></DataGridTextColumn.ElementStyle><DataGridTextColumn.EditingElementStyle><Style TargetType="TextBox"><Setter Property="VerticalContentAlignment" Value="Center" /></Style></DataGridTextColumn.EditingElementStyle></DataGridTextColumn><!--  ElementStyle="{StaticResource CenteredTextBlockStyle}"  --></DataGrid.Columns>
</DataGrid>

由于列使用的是 嵌套了textblock组件的型式 编辑的时候会变成textbox组件
所以这里使用 PreviewKeyDown 来绑定 delete键 来删除行
两种删除方式的区别在于 SelectionUnit 的类型

第一种当 SelectionUnit="CellOrRowHeader"的时候

private void DataGrid_OnPreviewKeyDown(object sender, KeyEventArgs e)
{if (e.Key == Key.Delete){// 获取所有行var items = DataGrid.Items;// 获取选中的单元格var selectedCells = DataGrid.SelectedCells;// 使用 HashSet 来避免重复行var selectedRows = new HashSet<Bds>();foreach (var cell in selectedCells){if (cell.Item is Bds item){selectedRows.Add(item);}}// 从数据源中删除选中的项foreach (var item in selectedRows){_gridFileList.Remove(item);}e.Handled = true;}
}

第二种 当SelectionUnit=“FullRow” 的时候

private void DataGrid_OnPreviewKeyDown(object sender, KeyEventArgs e)
{if (e.Key == Key.Delete){确保有选中的行if (DataGrid.SelectedItems.Count > 0){// 获取选中的项var selectedItems = DataGrid.SelectedItems.Cast<Bds>().ToList();// 从数据源中删除选中的项foreach (var item in selectedItems){// 假设你有一个 ObservableCollection 或 List 作为数据源_gridFileList.Remove(item);}// 取消事件,以防止其他处理e.Handled = true;}}
}

附上数据类型

public class Bds : NotificationObject
{private string _name;public string Name{get { return _name; }set{_name = value;RaisePropertyChanged();}}private string _value;public string Value{get { return _value; }set{_value = value;RaisePropertyChanged();}}private string _tishi;public string Tishi{get { return _tishi; }set{_tishi = value;RaisePropertyChanged();}}private string _fileName;public string FileName{get { return _fileName; }set{_fileName = value;RaisePropertyChanged();}}private string _exportFile;public string ExportFile{get { return _exportFile; }set{_exportFile = value;RaisePropertyChanged();}}
}

附上数据源

ObservableCollection<Bds> _gridFileList = new ObservableCollection<Bds>();

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com