我正在尝试了解有关WPF的更多信息,我已经阅读了一些关于Model-View-ViewModel(MVVM)的内容,但如果我要创建一个WPF应用程序,我想我仍然会做一些事情,出于习惯,我在winforms中做的一样。根据我的理解,最终将我编入角落。
因此,对我来说,学习“正确”方法的一种方法是比较和对比现有的,简单的winforms应用程序,它也是(正确地)在wpf中实现的。
我不是在寻找任何复杂的东西,也许只是几种形式和一些控件。有没有人知道这样的简单例子?
答案 0 :(得分:4)
结帐this video。他经历了典型的Winforms思考,然后将其转换为WPF中的MVVM模式。 Source code也可用。
答案 1 :(得分:1)
对于初学者,我建议创建一个测试WinForms项目和一个测试WPF项目。然后在每个表单上添加一个按钮和一个文本框,并将WinForms应用程序中的“Designer Generated Code”与WPF应用程序中的XAML进行比较。
然后,您可以在两个项目中双击设计器窗口中的按钮,VS将在WinForms和WPF中为您的按钮创建一个OnClick处理程序。这样您就可以比较两个平台的事件处理功能。
我们第一次深入研究WPF时遇到的另一个常见问题是:
XAML - get user control position relative to whole window as binding property
你会非常快速地了解到我们习惯在WinForms中做很多简单的事情,比如位置,但我们在WPF中已不再使用它了。
除此之外,我还要补充一点,WPF最大的学习曲线是设计序列与我们习惯完全相反的事实。在WPF中,您需要创建应用程序的所有内部工作首先,然后将该代码绑定到用户界面秒。这将帮助您避免编码像你提到的一个角落,比其他任何东西都要多。
答案 2 :(得分:0)
在这里查看CodePlex上的WPF期货http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14962并获取WPF Model-View-ViewModel Toolkit 0.1
安装它会在visual studio中为您提供MVVM模板,您可以使用它创建新项目。
这是使用MVVM创建WPF应用程序的良好起点。要记住的基本前提是,只要有可能,View(UI)和ModelView应该只通过数据绑定进行通信。
我发现这个模板非常有用,而我正试图了解WPF。
答案 3 :(得分:0)
您可以查看 WAF Windows Forms Adapter 。它在WPF和Windows窗体中呈现了Book Library示例应用程序。两种实现都使用MVVM模式将UI与业务逻辑分离。