在使用WPF之前,C#开发者应该知道什么

在使用WPF之前,C#开发者应该知道什么,c#,.net,wpf,winforms,xaml,C#,.net,Wpf,Winforms,Xaml,我更像是一个系统管理员和网站管理员,而不是开发人员,但有时我会开发,包括C#主要使用Winform(或者GTK+) 几周前我开始了一个WPF项目,它看起来非常强大,但一开始我感觉自己就像一只发现了一把刀的母鸡!有这么多不同 stackoverflow有很多这样的话题,我仔细阅读了一些类似的人,比如: 但是,当有人从Winform开始使用WPF时,他必须注意的区别是什么 [编辑] 关于LINQ与WPF的一些建议/链接如何 关于WPF导航的一些建议/链接如何 WPF与其他系统完全不同。 我

我更像是一个系统管理员和网站管理员,而不是开发人员,但有时我会开发,包括C#主要使用Winform(或者GTK+)


几周前我开始了一个WPF项目,它看起来非常强大,但一开始我感觉自己就像一只发现了一把刀的母鸡!有这么多不同

stackoverflow有很多这样的话题,我仔细阅读了一些类似的人,比如:

但是,当有人从Winform开始使用WPF时,他必须注意的区别是什么

[编辑]

  • 关于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)
      其他堆栈溢出主题


      “我觉得自己像一只发现了刀的母鸡!”-很好的类比:)@Coxy:在这种情况下,这是一个普通法语表达的直译,有没有一些英语对应词?如果我长时间使用winforms,我会加强/更新XML知识。这可能会让你觉得更像个家:@ivo s:XML对我来说不是问题,我在很多情况下都使用它:我更喜欢它,而不是用于小型网站、小型软件等的数据库,XHTML是XML,所以我在XML、DTD等方面做了很多工作,甚至是“稍微”复杂一点的SGML(IMHO)嗯,很有趣的链接,谢谢!“一只发现刀子的母鸡”哈哈,我第一次想到哇,他们在英语中也用这个。。。然后我看到你从哪里来了!同意。尽快学会,否则你很快就会发现自己在一个数千文件的意大利面代码项目中,在你意识到MVVM确实是一个好东西的时候不可能重构。一些链接,一些建议?因为MVVM(VVMM?)看起来非常神秘,即使有一些很好的解释,比如@G.Qyy,你是对的。我修好了,你应该检查一下卡尔·希夫莱特在t