首页 > 其他分享 >解决WPF中DataGrid移除选中项后报错的问题

解决WPF中DataGrid移除选中项后报错的问题

时间:2022-11-20 22:13:40浏览次数:50  
标签:DataGridCell 项后 Windows 绑定 System DataGrid 选中 移除 报错

1、问题描述

DataGrid列表中添加删除按钮,点击后执行下述操作:

ModelList.Remove(item);

这时候会有XAML绑定失败错误:

严重性    计数    数据上下文    绑定路径    目标    目标类型    说明    文件    行    项目
错误    12    null    SelectionUnit    DataGridCell    DataGridCell    找不到源: RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1'。

VS输出调试信息:

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=SelectionUnit; DataItem=null; target element is 'DataGridCell' (Name=''); target property is 'NoTarget' (type 'Object')

2、问题分析

VS输出的错误信息已经指出了问题所在,即在执行数据项删除后,DataGrid选中行的绑定数据找不到了,这时候只需要将选中行重置即可。

3、问题解决

为DataGrid添加选中项绑定:

SelectedIndex="{Binding SelectedItemIndex}"

点击删除按钮后将选中项索引重置即可:

SelectedItemIndex = -1;
ModelList.Remove(item);

标签:DataGridCell,项后,Windows,绑定,System,DataGrid,选中,移除,报错
From: https://www.cnblogs.com/xhubobo/p/16909753.html

相关文章