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

作者: b26168 (b26168)   2017-03-12 10:11:02
之前寫過 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 還比較單純?
感謝~
作者: yeo1987 (Archie)   2017-03-12 10:16:00
Label Bind A, TextBox Bind B, B的Setter進行檢查設定A如果是要等Button按下才做動作那就用事件或ICommand這得看你設計的需求與方式, 也有Bind同一變數的情形
作者: testPtt (測試)   2017-03-12 11:07:00
Button click notify Label get TextBox value
作者: largesperm (reindeer)   2017-03-12 14:14:00
要在 WPF 做到完全真正的 MVVM 不容易研究一下 Micro.Caliburn之類的工具
作者: lightyan (lightyan)   2017-03-13 11:46:00
應該是在button_click裡面 寫上label.Content = textBox.Text;
作者: jinmin88 (晝伏夜出)   2017-03-13 13:40:00
綁同一個變數..TextBox用OneWayToSource, Label用Oneway這個case可以不需要button了 可以靠updateTrigger

Links booklink

Contact Us: admin [ a t ] ucptt.com