[問題] Winform Class NotifyPropertyChanged

作者: ManGo1012 (ManGo)   2022-12-27 13:00:26
目前有想到一個我個人認為還算可以的解法
分享一下,如果有更好的還請不吝賜教
首先因為使用的是MVP模式
所以DataBinding這塊希望都在View內搞定,不要外擴到Presenter
目前的解法是這樣
假設此問題中會被覆蓋的Class於Presenter內叫做Test
現在就是將View內的Presenter實體新增PropertyChanged事件
然後當Test被set時
將那些跟其有關的Winform元件屬性重新綁定
有一點要注意的是
原本元件的DataBinding.Add()會有重複綁定的問題
所以有做一個專門用於處理的Class
會把原本目標元件已有的DataBinding移除
作者: testPtt (測試)   2022-12-27 13:07:00
object被new了binding要重設
作者: sating00 (sating00)   2022-12-27 19:27:00
PropertyChanged是屬性變更吧,你已經把整個物件換掉了當然不會出發原本的class的事件
作者: poewar (☺☻)   2022-12-28 18:35:00
改為bind父物件呢?例如label1.DataBind.Add("Text", this, "Test.Name", ...
作者: testPtt (測試)   2022-12-29 13:51:00
把bind寫在set裡面就確保每次都連到新物件了

Links booklink

Contact Us: admin [ a t ] ucptt.com