问候, 我想问一下下面描述的场景中哪种设计模式最好: 我有两个组合框: option1 option21 option2 option22 option3 option23 option4 option24
应该存在这两个组合框的特定组合 - 在第二个组合框中只应显示特定值取决于在第一个组合框中选择的值。 例如:如果我选择option1 - 只有option21和option22应该是可见的。 我应该使用什么样的设计模式?我想补充一点,我不使用任何数据库。
答案 0 :(得分:1)
为什么一切都必须是“设计模式”?
这还取决于您的语言提供的内容,例如:在Python中,您可以使用下拉列表的内部和显示值来执行dict:
option_tree = {
("option1", "Option 1"): {
("option21", "Option 2/1"),
("option22", "Option 2/2"),
},
("option2", "Option 2"): {
("option21", "Option 2/1"),
("option23", "Option 2/3"),
("option24", "Option 2/4"),
...
如果你有一个特定的UI API,也许你可以提到......大多数API(网络渲染框架,& c)都有规范的实现方式。
编辑:对于.NET,快速搜索后可以使用相同的方法:
有一个词典(String - > Vector)。
在Dictionary中,将第一个组合框的值作为键,并将第二个组合框中的相应值映射为值。然后可以使用以下方法设置第一个组合框的值:
combobox.AddRange(dictionary.Keys)
第二个组合框可与
一起使用secondcombo.AddRange(dictionary.Item(combo.SelectedItem))
如果你清除了第二个,并在第一次完成的每次更改时重新设置它。
答案 1 :(得分:1)
您可以将两个数据源创建为列表。第一个列表(在第一个组合框中使用)将包含具有关联Specification的项目。选择第一个项目时,可以使用规范过滤第二个列表。