2013-05-14 79 views
0

我站在一个有疑问的十字路口,哪条路是正确的路。正如你们都看到图像Groupbox和CheckBox都是动态创建的。我很困惑如果用户从XII2013SIF01选择Sun Tue和Fri,并从XII2013SIG02选择星期一Tue Wed和Thr,我可以如何通过按钮单击将这些复选框值传递给步骤3 Form。在步骤3中,我需要通过他们的组名来识别日期,因为根据该处理将完成。哪种技术最适合我,请给出一些指导/建议或建议。哪个传递动态创建的复选框和组框的最佳方式

enter image description here

回答

0

最好是创建一个类,将包含在该步骤中收集到的数据(或者在步骤的整个序列)。在该类中,这个特定的选项列表可以表示为每个部分的HashSet<DayOfWeek>属性。

实施例,每一步类:

public class Step2Selection { 
    public Step2Selection() { 
     XII2013SIF01 = new HashSet<DayOfWeek>(); 
     XII2013SIG02 = new HashSet<DayOfWeek>(); 
    } 

    public HashSet<DayOfWeek> XII2013SIF01 { get; private set; } 
    public HashSet<DayOfWeek> XII2013SIG02 { get; private set; } 
} 

替代地,如果部分的数量可以增长你可以使用自定义部分类的字典或列表。

针对您的特殊情况下,也可以使用字典没有自定义类:

IDictionary<string, HashSet<DayOfWeek>> // where dictionary keys are "XII2013SIF01", etc 

虽然它不会为任何额外的复杂性很好地扩展。

+0

@Andrey谢谢你。我在步骤1中使用List 将组框名称传递给Step2 Form的构造函数。从步骤2我分别需要groupbox和复选框名称。并且是部分(Groupbox)可以增加。如果列表可以做到这一点,那么请保持我的风格,并告诉我我将尝试在列表 user2241865 2013-05-14 06:30:30

+0

@ user2241865的指导和帮助下继续前进的方式我添加了所需的最小事物(请参阅最后的字典定义)。 – 2013-05-14 06:36:52

+0

Is List <>不适合这个,因为我对IDictionary不太熟悉 – user2241865 2013-05-14 06:40:37