交换DataGridView

时间:2018-06-18 08:23:54

标签: c# winforms data-binding datagridview

我有一个带有DataGridView的WinForms项目,它与数据绑定到一组对象。

一列包含传感器的序列号,用户可从列表中进行选择。如果用户选择已经在另一个项目中使用的序列号,我想要交换项目之间的一些(但不是全部)字段。

这打破了正常的数据绑定机制。虽然用户只编辑了一个项目,但实际上我将修改两个项目。

处理此问题的最佳方法是什么?

最简单的方法似乎是在CellValidating事件中处理它。这肯定发生在更新数据绑定项之前(在这种情况下很方便)。其他可能的事件(CellEndEdit,CellValueChanged,CellValidated)会在稍后发生。

但是,我不喜欢这样,因为CellValidating应该用于验证而不是其他随机的东西。

或者,我可以实现一个机制,让项目在其父对象中调用一个函数,并处理模型中的所有内容,而与UI无关。这似乎是一个更好的结构(类似MVVM),但更复杂。

0 个答案:

没有答案