我正在做一个项目,我们正在使用inffragistics作为第三方控制库。我们没有提供任何文件的项目,我所知道的唯一的事情是他们已经使用MVP设计模式。现在我正试图根据给我的任务调试应用程序。
我有一个自定义网格(主要来自inffragistics),它有三列"ColA, ColB, ColC"。ColB和ColC有组合框。ColB和ColC已经绑定到一个数据源。当我根据ColB中的选择更改ColB组合框中的选定项时,ColC组合集合将自我改进(根据ColB中的值删除一些项)。这里,我需要根据ColB所选值更改ColC集合细化中的一些逻辑。但我不能,因为我不确定,细化是发生在哪里。我尝试放置断点,但是在更改ColB中的值时没有事件触发,因此我不知道与细化相关的代码。
我知道这个问题是特定于我的项目,但我的问题是,是否有任何方法可以根据我在UI中除了断点所采取的行动获得代码?或者在这种情况下我应该遵循什么方法?我不太会调试工具。
谢谢。
很难说用什么事件来更新单元格中的组合框。如果您有源代码,请检查这些UltraGrid事件以获取改进代码。
事件触发 colB改变:
- CellChange
- AfterExitEditMode
- AfterCellUpdate
- AfterRowUpdate
在之前触发的事件用户将看到列colC:
展开的组合框- BeforeEnterEditMode
- BeforeCellListDropDown
也可以做一个小测试。例如,在colB和ColC之间有这些依赖关系:
- B1 => C1a, C1b, C1c
- B2 => C2a, C2b
设colB=B1, colC=C1b。现在换到另一行,回到这一行,把colB改成B2。如果更改了colC中的值,则应该查看在单元格更改后触发的事件。如果什么都没发生——你的代码可能在两个事件组中。
也可以尝试在代码中搜索一个术语ValueList -该代码可能使用此单元格属性。
我已经深入研究了代码,看看它实际上是如何工作的。对于我们的项目,所有控件都是在不同的解决方案中创建的自定义控件。所有这些功能都是为不同类型的控件定义的,这就是为什么在改变选择时没有触发事件的原因。但如果你在自定义控件解决方案中改变了某些东西,那么该类型的所有控件都会受到影响。出于这个原因,他们甚至给这些自定义控件附加了一个计数器事件。我得努力解决这个问题。我知道这是非常具体的项目查询和解决方案。