|
|
1
7
我的第一反应(这是一个强烈的反应)是说“不要这样做!”通过向视图模型提供对用户界面一部分的引用,您将破坏使视图模型如此强大和有用的封装。 例如,如果要对视图模型进行单元测试或将其序列化到磁盘上,该怎么办?在每种情况下,您的UI都将不存在,因为根本没有视图。您的测试将错过覆盖范围,您的重建将不完整。 如果视图模型实际上需要对UI对象的引用,并且没有更好的方法来构建它,那么最好的解决方案是让视图模型本身构造那些它需要引用的控件。然后,您的视图可以通过绑定将该控件合并为ContentPresenter的内容,并提供配置该控件的样式,包括用于提供其内容的ControlTemplate。因此:
和
其他可能性包括:
我的选择2如下:
setViewModelToThisPropertyChangedCallback中的代码将从DataContext获取视图模型,对其进行反射以查找“SpecialControl”属性,然后将其设置为文本框。请注意,setViewModelToThis的实现必须考虑到可能没有立即设置DataContext,并且可能需要删除旧设置并创建新设置才能对其进行更改。 |
|
|
2
2
首先,
|
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
KrzysiekYESS · 不知道如何绑定MVVM 1 年前 |
|
jason.kaisersmith · 无法通过绑定禁用条目 2 年前 |