设计模式/ListBox.Items.Count

时间:2013-05-22 10:03:52

标签: c# winforms

我用Pcapdot.Net DLL构建了一个Winform应用程序,它接收Pcap文件并将所有文件包播放到机器网卡中。

最近我注意到我所有的主要表单(所有按钮点击\ events)都是乱七八糟的,我把所有方法都放在这些函数中,代码看起来很复杂,而且很难理解,所以我开始重新排列这段代码

因为我的应用程序有Listbox,其中所有播放的文件都在里面我把所有这个播放功能放在播放按钮中,例如:我已经循环我的Listbox.Items.Count并在里面处理这些文件。现在我想做一些不同的事情,这是我的问题:

是定义处理此Play函数的类的常用方法,并且每次添加到我的列表框中的文件只是启动事件ControlAdded或删除文件ControlRemoved并将其放入文件进入我的班级谁有List持有这个文件?

1 个答案:

答案 0 :(得分:2)

我认为你最好重新排列它(将业务逻辑与用户界面分开):

  • 在Form类中有一个公共方法,它返回一个IEnumerable<string>,它是一个文件列表,名为SelectedFiles()

  • 为用户单击“播放”按钮时出现的“播放”按钮设置公开event属性,该按钮称为PlayClicked

  • 创建一个“控制器”类,负责创建和显示表单。

您的控制器类将附加到PlayClicked事件。控制器的PlayClicked处理程序将调用表单的SelectedFiles()方法来获取文件列表,然后执行它需要做的任何事情。

我甚至会考虑将所选文件的处理代码包装到另一个名为SelectedFileHandler的类中,并将处理文件的逻辑放入其中,可能在名为HandleFiles(IEnumerable<string> files)的方法中。

然后“控制器”类仍将连接到PlayClicked事件,但它将使用SelectedFileHandler.HandleFiles()方法来处理文件。

这对你有意义吗?我可能会误解你在寻找什么。

我基本上说你应该使用Model View ControllerModel View Presenter架构。