UI中的更改不会触发任何事件

时间:2011-12-05 13:43:11

标签: c# winforms c#-4.0 infragistics

我正在开发一个项目,我们正在使用Infragistics作为第三方控件库。我们没有提供任何项目文档,只有我知道他们使用过MVP设计模式。现在我正在尝试根据给我的任务来调试应用程序。

我有一个自定义网格(主要来自Infragistics),它有三列“ColA,ColB,ColC”。 ColB和ColC有组合框。 ColB和ColC已绑定到数据源。当我在ColB组合框中更改所选项目时,根据ColB中的选择,ColC组合集合自我优化(根据ColB中的值删除少量项目)。在这里,我需要根据ColB选择的值更改ColC的集合细化中的一些逻辑。但我不能,因为我不确定改进的地方在哪里。我尝试放置断点,但是在更改ColB中的值时没有事件触发,因此我不知道与细化相关的代码。

我知道这个问题是针对我的项目的,但我的问题是,除了断点之外,还有什么方法可以根据我在UI中采取的操作来获取代码?或者在这种情况下我应该遵循什么方法?我在调试工具方面不是很好。

谢谢。

2 个答案:

答案 0 :(得分:0)

很难说用什么事件来更新单元格中的组合框。如果您有源,请检查这些UltraGrid事件以获得优化代码。

colB更改后触发了

  1. CellChange
  2. AfterExitEditMode
  3. AfterCellUpdate
  4. AfterRowUpdate
  5. 之前触发的事件用户将看到列colC的扩展组合框:

    1. BeforeEnterEditMode
    2. BeforeCellListDropDown
    3. 也尝试一个小测试。例如,colB和ColC之间存在这些依赖关系:

      • B1 => C1a,C1b,C1c
      • B2 => C2a,C2b

      设置colB = B1和colC = C1b。现在切换到另一行,返回此行并将colB更改为B2。如果更改了colC中的值,那么您应该查看在单元格更改后触发的事件。如果什么都没发生 - 您的代码可能出现在两组事件中。

      您也可以尝试在代码中搜索 ValueList 这个代码 - 该代码可能会使用此单元格属性。

答案 1 :(得分:0)

我深入研究了代码,看看它是如何工作的。对于我们的项目,所有控件都是在不同解决方案中一起创建的自定义控件。所有这些功能都是针对不同类型的控件定义的,这就是为什么在更改选择时没有触发事件的原因。但是,如果您在自定义控件解决方案中更改某些内容,则该类型的所有控件都将受到影出于这个原因,他们甚至已经给这些自定义控件附加了一个反事件。我将不得不继续努力。我知道这是高度针对项目的查询以及解决方案。