【发布时间】:2016-03-03 19:46:18
【问题描述】:
我正在尝试在一个简单的 C# WinForms 应用程序中实现 MVP 模式。视图左侧是一个树形视图,其中包含应用程序保存的文件列表;视图右侧是一个 DataGridView,用于显示在树视图中单击的任何文件,或者用于输入以保存为新文件。这些文件只是使用 BinaryFormatter 写入磁盘的 Dictionary 对象。
我为视图创建了一个界面:
public interface IMappingsView
{
event EventHandler SaveMapping;
event EventHandler NewMapping;
event EventHandler<DeleteArgs> DeleteMapping;
event EventHandler PasteData;
event EventHandler NodeClicked;
}
视图上的删除按钮具有以下点击事件处理程序:
private void buttonDeleteMapping_Click(object sender, EventArgs e)
{
var node = treeView1.SelectedNode.Text;
var args = new DeleteArgs(Path.Combine(RootDir,node));
if (DeleteMapping != null)
{
DeleteMapping(this, args);
dataGridView1.Rows.Clear();
RefreshTreeView();
}
}
将信息从视图传递给演示者的最佳方式是什么?我觉得好像每个场景都需要自定义事件参数是非常错误的。
【问题讨论】: