当前位置:  开发笔记 > 编程语言 > 正文

你在哪里画代码和XAMLin WPF之间的界限?

如何解决《你在哪里画代码和XAMLinWPF之间的界限?》经验,为你挑选了4个好方法。

我越了解WPF和XAML,我就越发现你可以在XAML或代码(比如C#代码或VB.Net代码)中完成所有的GUI初始化和事件处理.

我的问题是那些已经在WPF工作更长时间的人,理想情况下那些已经发布了应用程序的人 - 你在哪里找到了在XAML和代码之间"画线"的最佳位置?你有没有在任何地方使用XAML?只有在与非编码UI设计师接口的地方?

这方面的任何提示对我自己和刚刚进入WPF编程的其他程序员都非常有帮助,并且会因我们可以做出的所有选择而瘫痪!



1> cplotts..:

我要看的一件事是模型 - 视图 - 视图模型模式.这是一个非常优雅的模式,自然地将所有东西分成漂亮的桶......包括你的xaml.

例如,它可以帮助您在开发人员和设计人员之间保持清晰的界限,甚至允许进行测试驱动的开发.

其中有很多信息,但我会从John Gossman的博客文章开始:

http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx

http://blogs.msdn.com/johngossman/archive/2005/10/09/478894.aspx

http://blogs.msdn.com/johngossman/archive/2006/02/26/539598.aspx

http://blogs.msdn.com/johngossman/archive/2006/02/27/540304.aspx

http://blogs.msdn.com/johngossman/archive/2006/03/04/543695.aspx

http://blogs.msdn.com/johngossman/archive/2006/04/13/576163.aspx

更新: 只想将人们指向另一个StackOverflow 帖子,其中有很多关于MV-VM的好信息.



2> Kent Boogaar..:

一个提示是不在XAML中声明事件处理程序.相反,命名您的元素并在代码隐藏中附加事件处理程序.这有助于在设计人员和开发人员之间保持清晰的分离.



3> Scott Whitlo..:

正如其他人所建议的那样,请尝试遵循Model-View-ViewModel模式.但是,把东西放在代码隐藏中是可以的!规则是,如果它与"视图"相关,则将其放在Xaml或代码隐藏中(以更方便的方式).如果与用户如何与系统交互相关的业务逻辑更多,则它属于ViewModel.如果它只是与交互无关的业务逻辑,则它属于模型.

每个的例子是:

Model:定义一个名为ModifiedDate的属性,用于存储上次修改时间.

ViewModel:将ModifiedDate转换为名为ModifiedAge的枚举属性,具体取决于修改时间:昨天,上周,上个月,去年等.

视图:将ModifiedAge属性转换为背景颜色,其中最近访问的数据突出显示为亮黄色,而最近访问较少的数据更像是设计师所坚持的米色 - 卡其色灰色,称为"Meadow Lark Lilly Flowerpot".


很好的例子说明了"适合"的地方.而且,我也喜欢不要过于"严格"避免代码背后的建议......避免代码背后不是目标......将东西放入正确的桶中!

4> Kent Boogaar..:

另一个提示是将XAML分为功能和美学.开发人员通常使用功能性XAML,而设计人员主要关注美学.这使得功能XAML非常容易理解,这很重要,因为开发人员经常需要编辑这样的XAML.美学XAML通常由设计师使用工具编辑,因此其整洁和冗长不是问题.

我刚才在这里做了一篇博文.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有