WinForms ModelViewPresenter:使用或不使用自定义eventargs查看事件

问题描述

我正在使用MVP模式创建Winforms应用程序。关于此模式,我有一个非常具体的问题:

在这种情况下,我有一个(绑定)模型列表,我的视图(通过界面)注入了演示者,现在我需要向该列表中添加模型。该列表本身是演示者的成员,并通过绑定源显示在视图中。问题是我需要在视图网格中将子记录添加到所选模型中。因此,用户选择一条记录,然后单击一个按钮以添加新的子记录。演示者订阅了事件“ AddChild”,但如何传递所选记录? 我看到的方式有2种选择

  1. 在视图中使用不带eventargs的事件+属性返回返回的行
    event EventHandler AddChild;
    Model SelectedRecord {get;set;}
  1. 将事件与包含所选行的自定义eventargs一起使用
    event EventHandler<AddChildEventArgs> AddChild;
    AddChild?.Invoke(this,new AddChildEventArgs() { SelectedRecord = grid.SelectedRow });

在这种情况下,我更喜欢第二种方法,但我需要在视图中添加一些“逻辑”来调用事件。 另外,我还必须创建很多自定义eventargs!

有没有“最佳实践”?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...