WPF感悟

  1. UI层与逻辑层要尽可能地剥离(解耦)。
  2. Routed Event和Command比Event的耦合度要低。
  3. UI层与逻辑层的“血管”是数据关联(Data Binding)。
  4. 尽量不要试图通过UI层去拿数据或者操作数据,而是直接去操作数据源。例如:
    • 想对一个TreeView里的结点排序,不应该是对TreeViewItem排序,而是应该对TreeView的DataSource排序
    • TreeView的Item是CheckBox,想把这些CheckBox认为选中,不应该从UI下手,而是把与CheckBox相关联的数据设为true
    • 想得到ListView(内嵌GridView)中的数据,不要使用VisualTree去找来找去,而是应该去访问ListView的DataSource
  5. 数据关联的核心思想是:数据决定UI。UI的作用是Update数据。比起Windows Form,WPF的UI作用淡化了很多。
时间: 2024-10-12 04:24:23

WPF感悟的相关文章

WPF的一些感悟

第一天在博客园写东西,只写一些自己对WPF稚嫩的理解和感悟. 1.Code Snippet代码简写工具 可以创建自己的代码模板管理器——>>>工具菜单,代码片段管理器 考出现有的+更改 2.三种设计模式:MVC,MVP,MVVM Why MVVM:1.团队层面:统一思维方式和实现方法2.架构层面:稳定,解耦(UI和业务逻辑分离,橘子皮原理),富有禅意(耦合度低,每个单元间不纠缠在一起) 当UI界面改变时,只用重新绑定值即可.3.代码层面:可读,可测(?),可替换 3.解决在Datagir

C# 实验感悟WPF

实验程序:todolist 本次博客主要记录实验程序开发过程. 1 public void Save() 2 { 3 System.Text.StringBuilder report = new System.Text.StringBuilder(); 4 foreach (Task toDoItem in taskList) 5 { 6 report.Append(toDoItem.TaskTitle.ToString() + "\t" + toDoItem.TaskDescript

小梦接触编程俩年的感悟

(终于把windows phone版的 2048 搞定了,好开心!虽然2048真心不难,不过还是遇到了几个问题.) 小梦开学就大三了,不是专业的计算机或软件的专业学生.大一上学习了C语言,第一次感受到了编程的美妙,十分感谢谭浩强老师,那本C语言红皮书真心挺棒的,把书上的例子都亲手敲了一遍,然后把习题都做了一遍.之后了解过C++,学过一阵网页前段开发,因为我大一下就有网站了(当然,不是自己写的,用的都是wordpress).后来开始学C#,WPF,windows 8,一直到现在的windows p

NLog类库的使用探索(一)+实习小感悟

1 写在前面 1.1 为什么学了软件 1.高考失败,分数不高,不能随心所欲 2.农村孩子,学点技术,将来有口饭吃 3.有科技含量,想玩电脑(那个时候是这么想的,那个时候觉得学计算机就是玩电脑) 1.2 为什么选了C# 1.大一大二学了c,C++,大三分方向NET和JAVA,觉得C,C++,C#看着好看,读者顺,就选了. 2.大多数学习好点的学了JAVA,不想跟风选了C# 1.3  选择决定命运 本科时候winform,asp.net,WindowsPhone各学了半年,学的最好的还算是WP,只能

“WPF老矣,尚能饭否”—且说说WPF今生未来(上):担心

近日微软公布了最新的WPF路线图,一片热议:对于老牌控件提供商葡萄城来说,这是WPF系列控件一个重要的机遇,因此,Spread Studio for WPF产品做了一次重要更新,并随着Spread Studio 8.0发布.鉴于此,选择翻译并整理了一篇自codeproject的文章:<Is WPF dead: the present and future of WPF>,抛砖引玉,且聊聊程序员心目中的WPF.      引子 作为一个老牌WPF程序员,多年来一直关注的问题是,在微软发布最新的W

WPF 依赖属性概念

理解依赖属性 在 WPF 中变成相比较于 传统 Windows Forms 变成发生了较大的改变. 属性现在以一组服务的形式提供给开发人员. 这组服务就叫做属性系统. 由 WPF 属性系统所支持的属性成为依赖属性. 依赖属性的概念 WPF 在依赖属性中提供了标准属性无法提供的功能, 特性如下: 决定属性值: 依赖属性的属性值可以在运行时有其他元素或者是其他信息所决定, 决定的过程具有一个优先次序. 自动验证或变更通知: 依赖属性哟一个自定的回调方法, 当属性值变更时被执行, 这个回调能验证新的值

wpf附加属性理解

WPF附加属性 http://www.cnblogs.com/tianyou/archive/2012/12/27/2835670.html WPF属性(二)附加属性 http://blog.csdn.net/iamsupercola/article/details/7069848 附加属性是说一个属性本来不属于某个对象,但由于某种需求而被后来附加上,也就是把对象放入一个特定环境后对象才具有的属性就称为附加属性,附加属性的作用就是将属性与数据类型解耦,让数据类型的设计更加灵活. 这个解释的比较清

WPF窗体の投影效果

有时候我们需要给WPF窗体加上一个毛边(投影效果) 我们可以在窗体下加上如下代码 <Window.Effect> <DropShadowEffect BlurRadius="24" Color="#FF858484" Direction="90" ShadowDepth="3"/> </Window.Effect> 然后需要给窗体设置一个border BorderThickness=&quo

WPF笔记整理 - Bitmap和BitmapImage

项目中有图片处理的逻辑,因此要用到Bitmap.而WPF加载的一般都是BitmapImage.这里就需要将BitmapImage转成Bitmap 1. 图片的路径要用这样的,假设图片在project下的Images目录,文件名XXImage.png. pack://application:,,,/xxx;component/Images/XXImage.png 2. 代码: Bitmap bmp = null; var image = new BitmapImage(new Uri(this.X