我想使用MVVM模式来开发WPF应用程序,该模型是一个实体框架模型。因为entityframwork在每个属性setter中实现INotifyPropertyChanged
并引发PropertyChanged
事件,我是否必须在viewmodel属性(模型属性的包装)中引发此事件?如果我使用EntityFramework,是否必须在ViewModel中引发PropertyChanged?
0
A
回答
2
您需要为您在视图中绑定的所有属性(XAML)提高PropertyChanged
事件,否则他们将无法知道它们何时应该更新。
因此,如果要在视图模型中包装模型属性,则需要引发该事件。
但是,可以绑定直接在模特属性:
<TextBox Text="{Binding Model.Property}" />
和这些特性实现INotifyChanged
用户界面将得到通知,因此将更新。因此你根本不需要包装它们。
2
是的,你这样做。
UI组件绑定到您的属性,并且您的属性使用EF实体对象。所以你可以捕捉实体属性的变化,但是UI现在应该如何应对变化?答:您的视图模型实现了INotifyPropertyChanged
并引发了PropertyChanged
事件。
相关问题
- 1. 我是否必须在C++中使用引用?
- 2. 是否必须在证书中使用keyusage?如果使用jdk7
- 3. 如果我绑定参数,是否必须使用mysql_real_escape_string?
- 4. 如果我必须支持IE9,是否值得使用Flexbox?
- 5. 我是否必须使用onPause/onStart/onDestroy
- 6. 我是否必须使用UNION insted JOIN?
- 7. 我是否必须在我的索引中包含auto_increment?
- 8. 是否必须使用SSL?
- 9. 在vb.net中,如果我使用AddHandler,我必须使用RemoveHandler吗?
- 10. 如果使用连接表,关系是否必须是HABTM?
- 11. 我是否必须使用Mac为iOS开发JavaFX
- 12. 是否ORDER BY列必须是索引
- 13. 我是否必须在每个类中使用“包”术语
- 14. 我是否必须在ASP.NET中使用Viewstate
- 15. 我们在使用会话时是否必须使用mysql_real_escape_string()?
- 16. 我是否必须在下面的代码中发布NSDate?
- 17. 使我的viewModel工作,它必须是一个列表
- 18. 如果我的应用使用Open ID Connect,它是否也必须支持OAuth?
- 19. 如果我设置了$ VIM,是否必须设置$ VIMRUNTIME?
- 20. 我如何在我的ViewModel中订阅PropertyChanged事件?
- 21. 如果我想使用Hibernate和Annotation,我必须使用javax.persistence。*吗?
- 22. 我在使用AdMob时是否必须拥有IDFA?
- 23. 是否必须使用“remember_token”字段?
- 24. 是否必须使用flags属性?
- 25. 分配时是否必须使用initWithString?
- 26. Bootstrap Carousel是否必须使用图像?
- 27. Mercurial Server是否必须使用Mercurial?
- 28. 我是否必须使用Compass使用Django-Grappelli修改CSS?
- 29. 您是否必须在回发中调用RegisterClientScriptInclude?
- 30. 在TClientDataSet中使用Locate时,是否必须使用Disable/EnableControls?
你的回答是正确的,但我不禁觉得你的术语有点不对...... EF层是'模型',而你的答案是将EF实体称为'模型'。 – slugster 2013-02-16 11:05:35
@slugster - 很可能。我还没有在EF上做过很多工作,所以我的术语可能有点偏离。随时纠正它。 – ChrisF 2013-02-16 11:07:53