[問題] WPF mainwindow usercontrol傳值問題

看板C_Sharp作者 (呆呆要不要買降有)時間5年前 (2019/02/25 11:29), 編輯推噓2(205)
留言7則, 2人參與, 5年前最新討論串1/1
我有一隻程式他是一個視窗裡面依條件去顯示不同的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用一個執行緒專門來處理這些交換資料的問題 可這樣感覺好麻煩,不知道一般來說這樣的功能都是怎麼去實現的 再麻煩大家了 --

09/05 19:33,
我國中都全校前10名
09/05 19:33

09/05 19:34,
全校有10個人
09/05 19:34

09/05 19:38,
其中5個缺席
09/05 19:38

09/05 19:39,
4個資源斑
09/05 19:39

09/05 19:56,
1個鄉民
09/05 19:56
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.153.217 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1551065393.A.296.html

02/25 12:54, 5年前 , 1F
1-1. 在UC裡面加屬性讓主視窗拿
02/25 12:54, 1F

02/25 12:55, 5年前 , 2F
1-2.在UC裡面加狀態改變事件,通知主視窗
02/25 12:55, 2F

02/25 12:55, 5年前 , 3F
1-3. UC和主視窗(部分)binding到同一個ViewModel
02/25 12:55, 3F

02/25 12:57, 5年前 , 4F
第一部分選一個。第二部分要說到好,要打好多字我好懶XDDD
02/25 12:57, 4F

02/26 01:53, 5年前 , 5F
以 ItemTemplete 方式開發,整合成同樣的資料格式,再使用
02/26 01:53, 5F

02/26 01:53, 5年前 , 6F
SelectedItem 取得現在所切換的物件,如果你能改成繼承同
02/26 01:53, 6F

02/26 01:53, 5年前 , 7F
樣父結構,那這時就可以直接轉型呼叫共同函式了
02/26 01:53, 7F
文章代碼(AID): #1SSs4nAM (C_Sharp)