未引发BindingNavigator事件

时间:2018-04-05 03:11:22

标签: winforms data-binding bindingsource bindingnavigator

我有一个"奇怪的"情况。 我有一个带有绑定源和绑定导航器的表单。 在这种情况下,我有161条记录(通过EF6)来显示。 对控件的数据绑定很有效。 但我发现绑定导航器的预期事件不会一直发生。然后他们安定下来。

我有事件处理程序(除了默认处理程序之外,但是当我删除默认处理程序时也会发生同样的事情)

我将绑定源设置为导航器,并且"位置已更改"事件被提出(因为我期待)

点击任何"移动"按钮,或编辑位置字段将导致: 没有引发任何事件(不是项目点击事件,而不是绑定源位置已更改)大约是4次中的3次。 然后事件发生,所有预期的导航发生,并重复。

但它似乎并不是永久性的,因为过了一段时间,几乎所有记录的导航都开始正常工作。 无论是否连接了调试器,都会发生这种情况。

我注意到的另一件事是,当它失败时,任务栏中的图标会闪烁一次。

在我的任何处理程序代码中都没有,因为它永远不会出现在我的代码中。 这可能是一个属性设置。 它不是一个例外,因为即使在"中断所有异常",也不会报告任何异常。

1 个答案:

答案 0 :(得分:1)

当你谈论"移动"按钮,我认为你的意思是BindingNavigator上的下一个/上一个记录导航按钮。这些按钮不是完整的Windows控件,而是它们的轻量级"控制。因为这个原因,我过去曾经看到过这些问题。

虽然我没有记忆中的所有细节,但这与他们不像常规Windows控件那样从其他控件中窃取焦点的事实有关,这导致一些事件不会提高。

我建议您创建自己的导航按钮,这是我最终在所有Windows窗体项目中执行的操作。然后,这些常规按钮可以调用BindingSource方法,例如MoveNext等。