[問題] WPF button觸發一個元素去取另一個的值

看板C_Sharp (C#)作者 (b26168)時間8年前 (2017/03/12 10:11), 8年前編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/1
之前寫過 WinForm WPF算初學 想實作MVVM 假設現在有一個 TextBox, 一個 Label, 一個 Button TextBox : User 準備要設定進去的值 Label : 目前設定的值 Button : 將 TextBox 的值, 設定給 Label 所以 Label 的值應該會是 Binding 一個 Model 中的 變數A 不過現在不知道 TextBox 跟 Button 怎樣將一連串的動作串在一起比較合理 TextBox 是還沒設定的值, 不應該去跟 Label Binding 到同一個 Model 變數A 而是等 Button Command 觸發 ViewModel 更新 Model 不過我在 ViewModel 要如何取得 TextBox 的值 還是說 必須在為了 TextBox 創一個 Model 變數B 給他使用, 這樣在 ViewModel 被觸發更新時, 才能將 變數B assign 給 變數A? 如果是這樣 為何不如就在 main 做 Button click 的 event 還比較單純? 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.50.55 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1489284664.A.FB1.html

03/12 10:16, , 1F
Label Bind A, TextBox Bind B, B的Setter進行檢查設定A
03/12 10:16, 1F

03/12 10:17, , 2F
如果是要等Button按下才做動作那就用事件或ICommand
03/12 10:17, 2F
所以說 假設今天有多組互相對應的 TextBox 跟 Label 同時在 Button 按下後更新, 就要有相對應多的 Model 變數 ※ 編輯: b26168 (114.42.50.55), 03/12/2017 10:43:18

03/12 10:50, , 3F
這得看你設計的需求與方式, 也有Bind同一變數的情形
03/12 10:50, 3F

03/12 11:07, , 4F
Button click notify Label get TextBox value
03/12 11:07, 4F

03/12 14:14, , 5F
要在 WPF 做到完全真正的 MVVM 不容易
03/12 14:14, 5F

03/12 14:14, , 6F
研究一下 Micro.Caliburn之類的工具
03/12 14:14, 6F

03/13 11:46, , 7F
應該是在button_click裡面 寫上
03/13 11:46, 7F

03/13 11:46, , 8F
label.Content = textBox.Text;
03/13 11:46, 8F

03/13 13:40, , 9F
綁同一個變數..TextBox用OneWayToSource, Label用Oneway
03/13 13:40, 9F

03/13 13:41, , 10F
這個case可以不需要button了 可以靠updateTrigger
03/13 13:41, 10F
文章代碼(AID): #1OnAuu-n (C_Sharp)
文章代碼(AID): #1OnAuu-n (C_Sharp)