看板 C_Sharp 關於我們 聯絡資訊
我有一隻程式他是一個視窗裡面依條件去顯示不同的usercontrol(以下簡稱uc) 如果是從主視窗送值到uc就很簡單 UserControl uc = new UserControl(); uc.memberfunction(); . . . 我遇到的問題是 uc裡面執行完某段程式後,要將執行的結果透過主視窗的某個function去設定UI 這個不知道該怎麼做 另外偷渡問個程式架構的問題 https://imgur.com/a/rrXvtfe 我上面的問題其實是要做一個統一顯示訊息的功能 這個顯示訊息的元件是寫在主視窗裡 所有嵌在視窗裡的UserControl的相關訊息都可以透過這個元件顯示在ui上 它其實就是一個queue,元件message property binding好queue之後 只要透過某個function一直enqueue就可以達到我要的效果 現在是圖片中紅框的DataGrid會依照不同的功能去切換usercontrol switch (rule) { case "1": usc = new UserControlHome(); GridMain.Children.Add(usc); break; case "2": usc = new ucSSIS(); GridMain.Children.Add(usc); break; . . . } 如果之後DataGrid改成一個TabControl 可以一次new很多個usercontrol加到tabitem再加到tabcontrol裡 然後tabitem還可以dockable讓usercontrol之間也可以做到傳訊息 或是主視窗一次可以對好幾個usercontrol傳訊息的話 現在寫的東西可能在那個時候就不適用了 一般來說這樣要怎麼做比較好 我有想過寫一個MessageCenter用一個執行緒專門來處理這些交換資料的問題 可這樣感覺好麻煩,不知道一般來說這樣的功能都是怎麼去實現的 再麻煩大家了 --
staminafish:我國中都全校前10名09/05 19:33
montes3388: 全校有10個人09/05 19:34
twdonny: 其中5個缺席09/05 19:38
montes3388: 4個資源斑09/05 19:39
a110002211: 1個鄉民09/05 19:56
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.153.217 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1551065393.A.296.html
Litfal: 1-1. 在UC裡面加屬性讓主視窗拿 02/25 12:54
Litfal: 1-2.在UC裡面加狀態改變事件,通知主視窗 02/25 12:55
Litfal: 1-3. UC和主視窗(部分)binding到同一個ViewModel 02/25 12:55
Litfal: 第一部分選一個。第二部分要說到好,要打好多字我好懶XDDD 02/25 12:57
anumis: 以 ItemTemplete 方式開發,整合成同樣的資料格式,再使用 02/26 01:53
anumis: SelectedItem 取得現在所切換的物件,如果你能改成繼承同 02/26 01:53
anumis: 樣父結構,那這時就可以直接轉型呼叫共同函式了 02/26 01:53