如何在RepositoryItemComboBox中隐藏Item?

时间:2015-04-08 20:11:24

标签: winforms filter devexpress in-place-editor

您好我在winform上使用devExpress。 我有一个项目列表wholeList = {Item1,Item2,Item3,Item4,Item5,Item6}, 我有另外两个列表:ActionAList = {Item1,Item3,Item5},ActionBList = {Item2,Item4,Item6}。 我的表单上有一个网格视图。我在这个网格上有两列“Action”和“Item”。每列都有一个repositoryItemComboBox作为就地编辑器。

在“动作”的下拉列表中,我有“ActionA”和“ActionB”。在“项目”的下拉列表中,我有6个项目Item1到Item6。当我选择ActionA时,我希望Item下拉列表只显示Item1,Item3和Item5。当我选择ActionB时,我希望Item下拉列表只显示Item2,Item4和Item6。

我认为当用户选择不同的Action(A或B)时,我可以在Item下拉列表中清除repositoryItems,并将ActionAList或ActionBList添加回repositoryItem。但我觉得不舒服,因为在这个时间点,Item下拉列表中的可用项目只有Item1,3和5,但是另一行可能仍然保留ActionB和Item2。

我想知道存档此要求的最佳方式是什么。 我还想到我们是否有任何方法可以隐藏整个列表中的某些项目。 因此,当用户打开Item下拉菜单时。根据当前行的动作值,我可能只在ActionAList或ActionBList中显示项目。但是当我创建ComboBoxItem或ImageComboBoxItem时,我无法找到这样的属性。

感谢您的任何意见!

1 个答案:

答案 0 :(得分:0)

首先,请记住repositoryItems只是为GridView中的每一行构建编辑器的模板。在单元格基础上控制编辑器的唯一方法是处理CustomRowCellEdit事件(您可以在其中选择现有编辑器或创建自定义编辑器)。

其次,每次用户更改“Action”列中的值时,您必须处理CellValueChanged事件以清除列'Item',以避免您描述的情况(当Action = A时来自ActionBList的项目)。

此致

Maciej Nowicki