|
|
1
1
既然您使用的是WPF,那么您应该真正了解 MVVM (Model-View-ViewModel) 模式。它是一种 Presentation Model (PM)讨论的模式 Martin Fowler . WPF非常面向绑定,并且为XAML提供了一个非常强大和丰富的数据绑定框架。使用MVVM,您可以完全地将您的视图模型与视图分离开来,从而允许真正的POCO UI开发,从而实现关注点和单元可测试性的最终分离。 使用MVVM,您将能够将所有视图(包括Windows、用户控件等)模块化并从驱动它们的代码中分离出来。除了为您自动生成的代码之外,您不应该在代码后面有任何逻辑。开始有些事情有点棘手,但是下面的链接应该可以让你开始。要了解的关键是MVVM模式本身、数据绑定、路由事件和命令以及附加的行为: wpf+mvvm在前面有一点学习曲线,但是一旦你克服了最初的障碍,你将永远不会,永远不会想回头看。WPF和MVVM的可组合性、丢失耦合、数据绑定和原始能力令人吃惊。您在UI上的自由度将比以前任何时候都要大,而且您很少(如果有的话)真的需要考虑代码隐藏。 |
|
|
2
1
我碰巧喜欢代码落后(还有另一种个人观点),但它们只在它们除了促进控制事件和应用程序其余部分之间的交互之外什么都不做的情况下工作。不过,我承认,我见过很多反例。我甚至写了一些…… 实际上,后面的代码应该做的就是“哦,有人点击了这个按钮;可能有一些事情想知道。”Prism(来自MS模式和实践)为WPF和Silverlight提供了许多体系结构基础设施;它包括一个发布/订阅接口,允许控件和代码在后面简单地发布即使不知道可能的订户,也不知道订户可能会对事件做什么。Prism还为Silverlight添加了命令。 用于WPF和Silverlight的MVC的常见变体是MVVM(模型、视图、视图模型)。ViewModel使数据以某种最有用的形式(如ObservableCollections,以便于双向绑定)提供给用户控件。 |
|
|
3
0
自定义控件用于显示内容。在这方面,它们与按钮或下拉组合框没有区别。诀窍是不要让他们直接处理事情。他们需要通过视图界面发送内容,演示者也需要通过视图界面与他们进行交互。 这样想。如果忽略MVP,自定义控件将以特定的方式与模型交互。您对MVP所做的就是采用这种方式,并使用视图界面定义它们。是的,您正在添加一个额外的调用层,但其优点是您可以完整地记录它如何与系统的其余部分交互。另外,你还可以把它撕下来换成完全不同的东西。因为所有需要做的新事情都是实现视图接口的一部分。 如果你有一个具体的例子,我可以更好地说明。 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 11 月前 |
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
codymanix · WPF:TextBlock周围可见小边框? 1 年前 |
|
|
Nostromo · 来自背景对象的工具提示 1 年前 |
|
|
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 1 年前 |
|
|
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 1 年前 |
|
|
Thern · 在UI线程(WPF)上的void方法中调用异步函数 1 年前 |