C# 使用WinForm和MVC时更改视图

C# 使用WinForm和MVC时更改视图,c#,winforms,C#,Winforms,作为学校项目的一部分,我和一个小组将使用C#开发一个Windows应用程序。 我们对C#不是很有经验,但对它有一些基本的了解。然而,我们确实有其他语言和平台的经验 我们希望构建一个应用程序,其中布局分为两个主要部分:位于左侧的菜单和位于右侧的内容。 菜单或多或少是静态的,当选择菜单中的一个条目时,内容将发生变化 我们还没有找到实现这一目标的最佳途径,也没有找到这方面的好材料。其想法是拥有一个窗口并向该窗口添加一个视图(据我所知,这应该是一个用户控件?)。此控件将显示在菜单中 现在,我们的问题是,

作为学校项目的一部分,我和一个小组将使用C#开发一个Windows应用程序。 我们对C#不是很有经验,但对它有一些基本的了解。然而,我们确实有其他语言和平台的经验

我们希望构建一个应用程序,其中布局分为两个主要部分:位于左侧的菜单和位于右侧的内容。 菜单或多或少是静态的,当选择菜单中的一个条目时,内容将发生变化

我们还没有找到实现这一目标的最佳途径,也没有找到这方面的好材料。其想法是拥有一个窗口并向该窗口添加一个视图(据我所知,这应该是一个用户控件?)。此控件将显示在菜单中

现在,我们的问题是,是否有人能为我们指明正确的方向,以实现程序中的导航。比如,当单击菜单项时,我们将如何更改窗口的内容,以及如何管理哪个视图处于活动状态?我假设每个视图(在“内容区域”中)都有一个控制器。 我们对使用WinForms和MVC模式时的“最佳实践”感兴趣


我们希望有人能在此项目中进一步帮助我们。

如果您使用Winforms,您可以选择:

-在菜单导航上动态清除表单并生成内容

-使用mdi容器窗体,它可以是许多子窗体的父窗体


如果您使用的是WPF,则可以使用基于所用菜单选择加载的框架控件中的页面。您还可以使用MVVM模式构建应用程序。

如果您使用的是Winforms,那么您可以选择:

-在菜单导航上动态清除表单并生成内容

-使用mdi容器窗体,它可以是许多子窗体的父窗体


如果您使用的是WPF,则可以使用基于所用菜单选择加载的框架控件中的页面。你也可以使用MVVM模式来构建你的应用程序。

< P>如果我是你,我会认真考虑使用WPF而不是WiFrase. 它和MVVM模式的使用,使您能够用比使用winforms少得多的代码完成一些令人印象深刻的工作。如果您还不了解winforms,那么它也可能是一个稍微不太陡峭的学习曲线,因为WPF是一个经过深思熟虑的框架(至少在我看来)

如果您选择WPF路线,请花一些时间了解绑定的工作原理以及如何将ViewModel绑定到UI。一旦您对正确的UI分离有了很好的理解,您就能够比使用旧的WinForms框架做更多的事情


当我第一次开始研究WPF时,我发现这非常有用。特别是RelayCord.< /P> < P>如果我是你,我会认真考虑使用WPF而不是WiFrase. 它和MVVM模式的使用,使您能够用比使用winforms少得多的代码完成一些令人印象深刻的工作。如果您还不了解winforms,那么它也可能是一个稍微不太陡峭的学习曲线,因为WPF是一个经过深思熟虑的框架(至少在我看来)

如果您选择WPF路线,请花一些时间了解绑定的工作原理以及如何将ViewModel绑定到UI。一旦您对正确的UI分离有了很好的理解,您就能够比使用旧的WinForms框架做更多的事情


当我第一次开始研究WPF时,我发现这非常有用。特别是RelayCudio.< /P>如果我是你,我会认真考虑使用WPF而不是WiFrm。它和MVVM模式的使用,使您能够用比使用winforms少得多的代码完成一些令人印象深刻的工作。如果您还不了解winforms,那么它也可能是一个稍微不太陡峭的学习曲线,因为WPF是一个经过深思熟虑的框架(至少在我看来)。@RussellTroywest感谢您的建议。我们已经决定改用WPF,并已成功地使用设置了基本导航。也许你应该留下一个答案,因为你的评论真的解决了问题吗?好了,把它变成一个答案。我的博客上也有一些关于调试绑定的内容。可能有比我的东西更好的信息,但你可能会发现它很有用。在我的配置文件中有一个链接。如果我是你,我会认真考虑使用WPF而不是WiFrm。它和MVVM模式的使用,使您能够用比使用winforms少得多的代码完成一些令人印象深刻的工作。如果您还不了解winforms,那么它也可能是一个稍微不太陡峭的学习曲线,因为WPF是一个经过深思熟虑的框架(至少在我看来)。@RussellTroywest感谢您的建议。我们已经决定改用WPF,并已成功地使用设置了基本导航。也许你应该留下一个答案,因为你的评论真的解决了问题吗?好了,把它变成一个答案。我的博客上也有一些关于调试绑定的内容。可能有比我的东西更好的信息,但你可能会发现它很有用。在我的个人资料中有一个链接。