在使用WPF之前,C#开发者应该知道什么
我更像是一个系统管理员和网站管理员,而不是开发人员,但有时我会开发,包括C#主要使用Winform(或者GTK+)在使用WPF之前,C#开发者应该知道什么,c#,.net,wpf,winforms,xaml,C#,.net,Wpf,Winforms,Xaml,我更像是一个系统管理员和网站管理员,而不是开发人员,但有时我会开发,包括C#主要使用Winform(或者GTK+) 几周前我开始了一个WPF项目,它看起来非常强大,但一开始我感觉自己就像一只发现了一把刀的母鸡!有这么多不同 stackoverflow有很多这样的话题,我仔细阅读了一些类似的人,比如: 但是,当有人从Winform开始使用WPF时,他必须注意的区别是什么 [编辑] 关于LINQ与WPF的一些建议/链接如何 关于WPF导航的一些建议/链接如何 WPF与其他系统完全不同。 我
几周前我开始了一个WPF项目,它看起来非常强大,但一开始我感觉自己就像一只发现了一把刀的母鸡!有这么多不同 stackoverflow有很多这样的话题,我仔细阅读了一些类似的人,比如:
- 关于LINQ与WPF的一些建议/链接如何
- 关于WPF导航的一些建议/链接如何
- WPF与其他系统完全不同。
我有几年的WinForms、Win32和web编程经验,我相信我的web编程经验对我帮助最大
至于书籍,来自亚当·内森的“Sams出版社”给了我极大的帮助。我还推荐Sacha Barber's及其所有与WPF相关的文章。这家伙真厉害 要开始使用WPF,必须了解设计模式。
我也推荐这本书。我觉得它很棒 我同意Arseny的观点,学习MVVM是正确学习WPF的核心。它不是一个利基的东西——如果应用得当,它可以使代码更干净、更简单,并促进解耦和单元测试 这里有一个非常好的视频,它解释了概念和实现: . 在视频中,这家伙在谈论Silverlight,但WPF中的实现几乎完全相同 一旦你看了视频,并且对WPF的基础知识感到满意,你就可以做得比采用一个框架来减轻你手上的负担和管道更糟糕。我高度赞扬。通过鼓励您使用MVVM,这将引导您走上最佳实践之路,但也将为您处理许多编码细节。网站上的文档有点少,但有一些教程正在稳步添加 例如,当遵循MVVM时,通常会有一个视图(例如窗口)和一个视图模型(C#类)。如果视图上有一个包含订单号的文本框,则ViewModel上会有一个名为OrderNumber的对应属性。使用WPF绑定表达式:
<TextBox x:Name="OrderNumber" Text="{Binding OrderNumber}" />
文本框将绑定到ViewModel上的属性,这样当文本框或属性更改时,另一个将自动更新。使用Caliburn Micro这样的框架,您不必编写任何绑定表达式,它使用了一种简单的基于约定的方法。在上一个示例中,如果文本框名为OrderNumber,而ViewModel属性名为OrderNumber,则Caliburn假定它们必须是相同的内容,并自动为您绑定它们
<TextBox x:Name="OrderNumber" />
如上所述,您的XAML变得更加简单,让您专注于完成工作。我希望在我开始大量生产自己的ViewModelBase类之前,我早就找到了这样的框架,查看者等。Winforms/C开发者应该知道/接受的最重要的事情是WPF与Winforms非常不同,Winforms的做事方式不是WPF中正确的做事方式。 我见过很多WinForms开发人员使用
事件
/委托
和线程
来解决每一个问题,而不是使用绑定
,命令
,触发器
等
谢谢大家,但这一切都有点分散,所以我自己做了一个参考资料汇编并添加了一些东西,请告诉我你的想法(或者改进,我让它成为社区维基)
奇怪的是,没有人谈论LINQ,它似乎是这项技术的核心元素 考虑到我失去的时间,另一件似乎很重要的事情是,不要使用从我读过的许多资料中发现的似乎不能正常工作的方法。因此,使用导航框架似乎很重要,例如 这似乎是WPF中需要关注的一个重要方面,如果有人对此有一些有趣的资源,请添加到这篇文章中 RTFM
- (与先例相同,但适用于WPF4)