[问题] 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