我想使用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