使用WPF usercontrol和MVVM

我有以下问题

>我的usercontrol的使用者应该分配usercontrol的DataContext还是设置一些依赖属性. (与#3相关:如果DataContext然后我的单个项目需要直接绑定到DC中给出的对象,如果DP然后我可以很好地绑定到任何VM)
>如果他们设置了属性,并且如果我使用3个原始项,我应该将它们作为单独的属性接受,还是将它们组合到我的用户控件的模型中
>我应该要求我的usercontrol的消费者向我发送模型或viewmodel(我说viewmodel但是对于我到目前为止使用的所有控件,我从未见过有人要求我发送它们VM – 我相信有些人可能会实现MVVM国内

最佳答案 您的消费者想要用户控制.所以我认为用户控件应该能够在任何上下文/应用程序(
WPF)中工作.所以,回答你的问题

1)使用者应设置在用户控件中定义的依赖项属性.通过使用datacontext,您将把usercontrol耦合到使用者.

2)将它们作为单独的原始属性,否则消费者需要不必要地创建一个对象以满足您的模型(再次耦合 – 为什么消费者需要了解您的模型?).

3)不,你不应该要求消费者向你发送视图模型.为什么你需要知道哪个消费者正在使用你的“通用”用户控件.

如果由于实际考虑而无法执行上述任何操作 – 那么不要担心违反任何/所有规则,因为您的用户控制与特定上下文相结合 – 它不再是通用的.如果您编写通用用户控件,则任何WPF应用程序都可以使用您的用户控件.这是你的电话.

点赞