想象一下,您有FormA和FormB。 FormA有一個ListBox1,用於顯示DataSource1的值(可以是列表或數組,但底線是它使用ListBox.DataSource賦值)。 FormB將被實例化並由FormA調用。 FormA會修改(將單個行添加到列表或數組中,當時爲1行)DataSource1在FormA中提供ListBox1。你如何要求FormA及其ListBox1重新加載DataSource1並顯示由FormB修改的新值?目前FormA將包含源(列表或數組)的整個對象傳遞給FormB的構造函數中的FormB。我可以在FormB的構造函數中傳遞FormA引用,並以這種方式調用FormA的方法,但它是最有效的方法嗎?請求表單執行控制更新
0
A
回答
0
事實證明,我是有錯的。事件處理就是答案。 FormA應該有一個方法將數據源重新加載到ListBox1中。應該有另一個可以委託的方法,將對象作爲發件人和EventArgs作爲e。在formB實例化中,適當的FormB的事件處理程序應該像接受任何代理一樣接收發送者和事件參數。在這種情況下,我可以使用FormClosedEventHandler。或者,該方法可以委派給DataSource1.DataSourceChangedEventHandler。就是這樣!當事件被觸發時,FormA作爲觀察者並通過委託執行自己的方法。
2
我認爲你需要的observer Pattern
tutorial
如果它是你第一次使用觀察員,你應該看看整個MVC Pattern
相關問題
- 1. 更新WebClip:請求執行失敗
- 2. 對於單個請求,控制器正在執行兩次
- 3. POST請求更新行
- 4. KrakenJS:通過控制器執行POST請求以錯誤結束
- 5. Grails - 跨控制器代碼,在每個請求上執行
- 6. 執行HTTP請求
- 7. 執行cUrl請求
- 8. Jmeter請求執行
- 9. 簡單的Ajax請求控制器 - Symfony3
- 10. 使用Volley執行單個請求
- 11. 執行簡單的POST請求Swift
- 12. 如何執行單線程請求?
- 13. .NET 3.5的圖表控制例外:錯誤執行的ChartImg.axd子請求
- 14. ajax請求控制器更新laravel視圖
- 15. 在更改form_dropdown時向控制器提交一個新請求
- 16. 執行HTTP POST請求,然後執行HTTP GET請求
- 17. 控制器與AJAX請求行爲
- 18. 更新自定義的CursorAdapter執行內部getView請求失敗
- 19. 當參數更改時,Ember.js路由不會執行新請求
- 20. 如何在後臺執行ajax請求和html元素更新?
- 21. 如何使用twit執行媒體POST請求的更新?
- 22. 請求單位置更新,AVD崩潰
- 23. 更新提交/拉請求Github清單
- 24. 從Play 2.0 Scala控制器請求獲取表單參數值
- 25. 空表單字段Ajax請求到Spring控制器
- 26. 無法收到來自我的控制器的表單請求
- 27. 如何使用表單動作執行請求映射?
- 28. jQuery在提交時從表單執行ajax請求?
- 29. Laravel行更新,請求方法
- 30. 微軟訪問請求更新表格後2個請求
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –