使用 MVVM 分配数据上下文的最佳方法是什么?
我一直在寻找设置数据上下文属性的最佳方法。我发现了三种方法
在视图上分配数据上下文(在 XAML 上或隐藏代码上)。
通过构造函数在 ViewModel 上分配数据上下文。
使用一些配置,通过一些基础设施类在运行时获取视图和视图模型引用并绑定数据上下文。
就松散耦合性和可维护性而言,哪一个是最佳选择?或者有什么最好的方法吗?
I was looking for best approach to set data context property. I found three ways
Assign data context on View (either on XAML or code behind).
Assign data context on ViewModel through constructor.
Use some configuration that takes view and view model reference and bind data context on run time through some infrastructure classes.
Which is the best option among this in terms of loosely coupled, maintainable? Or Is there any best approach?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我个人喜欢这种方法,因为它使我必须编写更少的代码:)。每当 wpf 控件需要以可视方式呈现
ViewModel
时,它基本上使用IValueConverter
来查找要使用的视图,并且IValueConverter
为您设置数据上下文。它还向您展示了如何创建一个数据模板,允许您要求 WPF 默认使用此转换器,如下所示:I personally like this approach because it makes me have to write less code :). It basically uses an
IValueConverter
to lookup which view to use whenever a wpf control needs to present aViewModel
visually and theIValueConverter
sets the datacontext for you. It also shows you how to create a datatemplate that allows you to require WPF to utilize this converter by default, something like this:4.方式是DataTemplate。
我认为最好的方法是最适合您当前情况的方法。
如果我有viewmodel第一个动态场景,我使用datatemplate/contentpresenter或首先使用view,我会采取你的方式,依此类推...
the 4. way would be a DataTemplate.
i think the best approach is the one which fits best in your current situation.
if i have viewmodel first dynamic scenarios i use datatemplate/contentpresenter or with view first i take your way one and so on...