我有一个使用 MVP 模式编写的小应用程序,如下所示:
- 我创建了一个名为 IView 的界面
- 我在表单中实现了这个接口(interface)
- 将表单实例作为 IView 类型传递给演示者的构造函数
表单包含一个 ListView 组件。填充 ListView 的项目是在演示者中创建的。我听说在 Presenter 中使用 UI 组件类不是一个好主意。我应该如何以及在哪里创建这些 ListViewItems?我可以在表单本身中创建 ListViewItems,但表单不需要尽可能轻量且没有逻辑吗?
编辑:注意这是一个 Windows 窗体应用程序
最佳答案
I could create the ListViewItems in the form itself but doesn't the form need to be as lightweight as possible with no logic in it?
一个简单的循环,简单的对象创建并不困难。这样的代码对于 View 来说是相当轻量级的:
class SomeView
{
void SetData(IEnumerable<DataItem> dataItems)
{
foreach(DataItem dataItem in dataItems)
{
ListViewItem lvi = new ListViewItem();
lvi.Text = dataItem.Text;
...
}
}
}
此外,您还可以使用 Binding(正如其他人所建议的)。这将进一步简化 SetData。
尽量让 View 代码保持简单,以便您可以通过快速代码审查来“验证”它 :-)
关于c# - 使用 MVP 模式时应该在哪里创建 ListViewItem 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619038/