我已经越来越多地参与WPF大约一年了。很多事情都是新的,有时很难让我的脑袋缠绕它。
与此同时,我正在重读“GOF设计模式”一书。
有几次我会停在中间因为我会意识到某个模式是某些WPF功能中使用的模式。每当这种认识到达我的时候,我觉得我对相关WPF原则的理解只是迈出了一大步。这有点像aha-effect。
我也意识到我更容易理解Prism,因为文档在解释所涉及的模式方面做得非常出色。
所以这是我的“问题”(更像是努力):
为了帮助我们所有人了解 如果有人,WPF会更好 谁也“发现”了一个设计模式 WPF可以给出一个简短的解释。
我找到的一个非常明显的例子是路由事件:
如果孩子检测到某个事件 控制,没有处理程序 指定,它传递给它 父母等等,直到最后 处理或不再找到父母。
假设我们在按钮上有图像 就在StackPanel里面 在窗户内。如果用户点击 图像,事件将是 由它处理(如果处理代码有 被指定)或“泡沫”直到 其中一个控件处理它。所以 每个控件都有机会 按此顺序反应。
- 图像
- 按钮
- 的StackPanel
- Window
醇>一旦控件处理它, 冒泡会停止。
这是一个简短的解释,对于a 更准确的一个咨询WPF 文献
这种功能代表着 “Chain of Responsibility 设计模式“说明,如果 他们是一个请求,它通过了 沿着责任链给予 其中的每个对象都有机会处理 它。请求的发件人没有 想法谁将处理它确保 脱钩。为了更彻底 解释请点击链接。
这里的目的仅仅是为了展示这个(看似已有10多年历史)的想法如何进入我们当前的技术并提供另一种方式来看待它。
我认为这对于一个开始是足够的,并希望在这里收集更多的相似之处。
干杯,托尔斯滕
答案 0 :(得分:0)
我不认为它是WPF特有的,但观察者设计模式似乎是.Net和WPF中所有事件处理的基础。
观察者设计模式被描述为“定义对象之间的一对多依赖关系,这样当一个对象改变状态时,其所有依赖关系都会被自动通知和更新。”在.Net中使用+ =运算符,您可以订阅状态的这种更改。随后您使用 - =运算符取消订阅。
答案 1 :(得分:-1)
我认为CommandBindings对我的开发方式非常重要和基础。