编辑过滤的数据绑定 ListObject - 奇怪的行为

Editing a filtered data-bound ListObject - strange behaviour

我正在处理 Excel VSTO 工作簿项目。我从 SQL 数据库获取数据,并使用来自不同表的数据填充 sheet 系列。在每个 sheet 中,我添加一个绑定到 DataTable 的 ListObject 数据,添加一些列验证,解锁某些列范围以允许编辑,然后保护 sheet.

总的来说,这非常有效。我面临的问题是,如果用户应用列筛选器然后尝试编辑单元格,单元格值将显示绑定数据表中不同列的值(?!)。更令人困惑的是,同一行中的其他单元格也会更改为显示来自不同相邻列的值。当我调试时,我可以看到绑定的 DataTable 具有用户输入的正确预期值,这正是 excel 在网格中显示的错误。

这不是我在以编程方式使用 ListObject 时遇到的第一个问题,但这个问题让我摸不着头脑。

我无法在此处提供任何代码,因为使用本机 excel 用户界面时会出现问题。

因此,经过进一步的实验,整行看起来好像向右移动了一列。碰巧我隐藏了第一列(作为我遇到的另一个 ListObject 错误的解决方法)。取消隐藏第一列可以解决问题。

这不完全是一个答案,只是另一个不太可能修复的错误的解决方法。

在我看来,VSTO 开发团队用于测试的用例并不像他们本来应该的那样严格。