嗨,我在winform上使用devExpress。我有一个项目列表wholeList={Item1,Item2,Item3,Item4,Item5,Item6},我有另外两个列表:ActionAList={Item1,Item3,Item5},ActionBList={Items2,Item4,Item6}。我的表单上有一个网格视图。这个网格上有两列"Action"one_answers"Item"。每列都有一个作为就地编辑器的repositoryItemComboBox。
在"Action"的下拉列表中,我有"ActionA"one_answers"ActionB"。在"项目"的下拉列表中,我有项目1到项目6的所有6个项目。当我选择ActionA时,我希望Item下拉列表只显示Item1、Item3和Item5。当我选择ActionB时,我希望Item下拉列表只显示Item2、Item4和Item6。
我认为当用户选择不同的Action(A或B)时,我可以清除Item下拉列表中的repositoryItems,并将ActionAList或ActionBList添加回repositoryItem。但我感到不舒服,因为在这个时候,Item下拉列表中的可用项可能只有Item1,3和Item5,但另一行可能仍然保留ActionB和Item2。
我想知道归档此需求的最佳方式是什么。我还想知道我们是否有任何方法来隐藏整个列表中的一些项目。因此,当用户打开项目下拉列表的编辑器时。根据当前行的操作值,我可能只在ActionAList或ActionBList中显示项目。但是我在创建ComboBoxItem或ImageComboBoxItem时找不到这样的属性。
感谢您的意见!
首先,请记住,repositoryItems只是为GridView中的每一行构造编辑器的模板。基于单元格控制编辑器的唯一方法是处理CustomRowCellEdit事件(您可以在其中选择现有编辑器或创建自定义编辑器)。
其次,每次用户更改列"Action"中的值时,您都必须处理CellValueChanged事件以清除列"Item",以避免出现您所描述的情况(Action=A时ActionBList中的Item)。
问候,
Maciej Nowicki