C# 我的演示者需要提示用户获取更多信息。我怎么把它接上?

C# 我的演示者需要提示用户获取更多信息。我怎么把它接上?,c#,mvp,passive-view,C#,Mvp,Passive View,我正在使用被动视图模式。用户单击一个新帐户按钮。视图使用无参数方法调用将责任委托给演示者 问题是有多种帐户类型,因此用户需要选择要创建的帐户类型。我如何解决这个问题 从视图中创建新表单,获取所需信息并将其作为属性公开,以便演示者可以检索它。(这忽略了视图中不应包含任何逻辑的概念) 从演示者创建并使用新表单。(这将演示者直接绑定到表单,忽略MVP的整个要点) 在其他地方创建新表单,并将其作为构造函数参数传递给演示者。。。或视图 忘记它,为每个帐户类型添加一个新按钮。(有许多帐户类型,这会使UI变得

我正在使用被动视图模式。用户单击一个新帐户按钮。视图使用无参数方法调用将责任委托给演示者

问题是有多种帐户类型,因此用户需要选择要创建的帐户类型。我如何解决这个问题

  • 从视图中创建新表单,获取所需信息并将其作为属性公开,以便演示者可以检索它。(这忽略了视图中不应包含任何逻辑的概念)
  • 从演示者创建并使用新表单。(这将演示者直接绑定到表单,忽略MVP的整个要点)
  • 在其他地方创建新表单,并将其作为构造函数参数传递给演示者。。。或视图
  • 忘记它,为每个帐户类型添加一个新按钮。(有许多帐户类型,这会使UI变得混乱,但情况也会如此。)
  • 我走错了方向,需要重新思考我的设计。(如果是这种情况,请朝正确方向轻推。)

  • 我不是MVP专家,但我会通过使用委托从视图中获取帐户类型来处理此问题。演示者在视图上调用代理,该视图打开“选择帐户类型”表单,并在用户选择帐户类型并关闭表单时返回所选帐户类型。

    我不是MVP专家,但我会通过使用代理从视图中获取帐户类型来处理此问题。演示者在视图上调用代理,该视图打开“选择帐户类型”表单,并在用户选择帐户类型并关闭表单时返回所选帐户类型。

    我可能会创建另一个演示者视图对以获取帐户类型。那么

    • 您的演示者直接呼叫其他演示者以显示新表单或
    • 您的演示者要求其模型提供正确的帐户类型。模型知道它应该询问其他地方,并调用“account-type-presenter”甚至“account-type-model”

    我想我会选择第一个选项,除非您的演示者变得笨拙。

    我可能会创建另一个演示者视图对来获取帐户类型。那么

    • 您的演示者直接呼叫其他演示者以显示新表单或
    • 您的演示者要求其模型提供正确的帐户类型。模型知道它应该询问其他地方,并调用“account-type-presenter”甚至“account-type-model”

    我想我会选择第一个选项,除非你的演示者变得笨拙。

    如果你说的是选择帐户类型的简单界面,依帐户类型的数量而定。我只想为每个帐户添加新按钮。但是,如果您有很多帐户类型,我会有一个组合框,其中列出所有可能的帐户,第一个(用户首先看到的)是无效的或未选择的类型。我还会添加一些标签,上面写着“选择要创建的帐户类型”,然后按下一个按钮,将组合框中的值发送到模型。这样,如果用户只需单击按钮而不选择帐户类型,模型将使该类型有效,并将问题返回到视图(视图可以高亮显示该框或将文本或其他内容显示为红色)。这将防止用户错过帐户类型选择。这种方法还将使单元测试更容易


    如果您所说的每种帐户类型都有需要填写的不同信息,那么您必须为每个帐户提供不同的视图和演示者。(这将是用户选择帐户类型后所需的)

    如果您谈论的是选择帐户类型的简单界面,这取决于帐户类型的数量。我只想为每个帐户添加新按钮。但是,如果您有很多帐户类型,我会有一个组合框,其中列出所有可能的帐户,第一个(用户首先看到的)是无效的或未选择的类型。我还会添加一些标签,上面写着“选择要创建的帐户类型”,然后按下一个按钮,将组合框中的值发送到模型。这样,如果用户只需单击按钮而不选择帐户类型,模型将使该类型有效,并将问题返回到视图(视图可以高亮显示该框或将文本或其他内容显示为红色)。这将防止用户错过帐户类型选择。这种方法还将使单元测试更容易


    如果您所说的每种帐户类型都有需要填写的不同信息,那么您必须为每个帐户提供不同的视图和演示者。(这将是用户选择帐户类型后所需的)

    我的解决方案与我预期的不同。我将用户单击的按钮更改为DropDownMenuButton。然后,我将帐户类型的字符串列表传递给填充下拉菜单的视图。我还为下拉菜单项click event创建了一个事件处理程序,它用菜单项的名称更新一个公共属性,然后将所有其他内容委托给演示者


    演示者只需从exposed属性中获取菜单项名称,然后使用帐户类型名称作为键在帐户类型的专用字典中查找帐户类型。

    我的解决方案与我预期的不同。我将用户单击的按钮更改为DropDownMenuButton。然后,我将帐户类型的字符串列表传递给填充下拉菜单的视图。我还为下拉菜单项click event创建了一个事件处理程序,它用菜单项的名称更新一个公共属性,然后将所有其他内容委托给演示者

    演示者只需从exposed属性获取菜单项名称,然后在