WPF:使用WPF UserControl的优缺点是什么?

4

我想就 WPF 的用户控件提出一些问题。我刚开始在我的 WPF 应用程序中使用这个“控件”,而不是将所有的控件都添加到一个 WPF 窗口中。

无论如何,如果我使用用户控件,我会得到更快的处理时间吗?依赖属性呢?我还能在我的用户控件和 WPF 窗口之间“通信”吗?

你有什么想法吗?先谢谢了。


2
“更快的进程时间”是什么? 祈求FSM不会是“更好的性能” - BoltClock
@BoltClock: 数据处理时间有没有什么印象? - abramlimpin
3个回答

3

用户控件应该用于重用,但这不是使用它们的主要原因

使用UserControls的主要原因是为了分离XAML中的不同部分,以便每个部分只负责一个职责。例如,如果您要编写VisualStudio,则会在一个UserControl中创建ToolBox,在另一个UserControl中创建CodeEditor等。这主要是为了SRP或单一职责原则。

重用或DRY(不要重复自己)很重要,但SRP更重要。

至于通信-是的,您将使用依赖属性。


你们都有很好的答案,但我选择了你的(因为SRP和DRY原则)。感谢你澄清了事情。 - abramlimpin

1
使用UserControls的主要原因是将一组控件捆绑在一起,以便它们可以被重复使用(通常在同一应用程序中)。
至于“性能”,您正在向可视树添加一个额外的节点,因此速度会变慢,但几乎不会引起注意。
UserControl与窗口(或其父项)之间的通信与添加到布局类的任何其他控件完全相同。

给那些正在投赞成票或反对票的人:请留言说明你为什么会进行(反)投票,这样我们才能得出答案。 - Emond

0

我只在需要在两个或多个地方共享控件组时才使用UserControl。要在UserControlWindow之间进行通信,您应该在用户控件中实现DependencyProperty。这是一个缺点。因此,如果可能的话,我会避免使用UserControl,仅在例如在两个版本(WPFXBAP)之间共享布局时使用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接