[問題] Winform Class NotifyPropertyChanged
目前有想到一個我個人認為還算可以的解法
分享一下,如果有更好的還請不吝賜教
首先因為使用的是MVP模式
所以DataBinding這塊希望都在View內搞定,不要外擴到Presenter
目前的解法是這樣
假設此問題中會被覆蓋的Class於Presenter內叫做Test
現在就是將View內的Presenter實體新增PropertyChanged事件
然後當Test被set時
將那些跟其有關的Winform元件屬性重新綁定
有一點要注意的是
原本元件的DataBinding.Add()會有重複綁定的問題
所以有做一個專門用於處理的Class
會把原本目標元件已有的DataBinding移除
------------------------------
大家好
想請問一下
我在Winform內設置如下Class
https://imgur.com/RmsoIGn
並將Label.Text綁定到兩個屬性
執行後有顯示預期結果,顯示綁定有效
https://imgur.com/Sxboubx
但不知道為什麼如果直接指定整個Class(Button_Click之後)
值有更新,不過Label.Text沒有跟著更新
https://imgur.com/cuKh9eH
同樣的程式碼在WPF內是有用的
不知道為何Winform就沒有
總之就是如果直接set整個Class
要怎麼觸發所有子屬性的NotifyPropertyChanged?
因為目標是用在複雜多層的Class
不太可能逐一屬性設定來觸發NotifyPropertyChanged的delegate
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.80.132 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1672117228.A.98B.html
→
12/27 13:07,
1年前
, 1F
12/27 13:07, 1F
→
12/27 19:27,
1年前
, 2F
12/27 19:27, 2F
→
12/27 19:27,
1年前
, 3F
12/27 19:27, 3F
原因我大概知道,只是好奇這種情況要怎麼處理
因為被覆蓋掉的Class有N多個屬性
還是有甚麼方法可以直接讓一個Class內的屬性
全部等於另一個相同的Class
但記憶體位置是保留的
推
12/28 18:35,
1年前
, 4F
12/28 18:35, 4F
→
12/28 18:35,
1年前
, 5F
12/28 18:35, 5F
剛剛試了一下,似乎沒作用,不過謝了~
→
12/29 13:51,
1年前
, 6F
12/29 13:51, 6F
※ 編輯: ManGo1012 (118.163.83.72 臺灣), 01/03/2023 13:23:56
→
01/03 19:22,
2年前
, 7F
01/03 19:22, 7F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章