如何在WPF中构建可重用的用户控件,在用户控件内部?

3
我正在使用WAF框架的WPF。 我有一个UI片段(比如它收集用户凭据),会在多个视图上呈现(见图片)。
我想,嘿,这是可重用的,让我们把它放在自己的用户控件中。
如果我忽略内部的用户控件并“展平”它,那么一切都能正常工作,但是尝试封装它使我想知道最佳方法是什么。 这个“凭证”用户控件应该有自己专用的视图模型吗? 它应该通过依赖属性公开其数据吗? 最佳方法是什么?
我需要将从凭据控件收集的数据暴露给外部用户控件的视图模型。
1个回答

2
这个“credentials”用户控件是否需要有自己的专用视图模型?它是否应该通过依赖属性公开其数据?什么是最佳方法?
UserControl可以有两种用途:
如果您想将其用作“控件”,在这种情况下,我会将其视为100%的视图。因此,我不会使UserControl拥有ViewModel(至少不是公共的),而是通过Dependency Properties公开其属性。这提供了最大的灵活性,因为UserControl像任何其他FrameworkElement一样运作,并且可以像任何其他控件一样放置和绑定到其他位置中的属性。
然而,当UserControl作为ViewModel的View时,情况就不同了。在这里,目标不是重用,而是在View和VM之间分离关注点。
这种情况更像是第一种 - 您希望拥有一个可在多个位置重用的控件。在这种情况下,这基本上成为一个视图元素。

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