作者b26168 (b26168)
看板C_Sharp
标题[问题] WPF button触发一个元素去取另一个的值
时间Sun Mar 12 10:11:02 2017
之前写过 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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1489284664.A.FB1.html
1F:→ yeo1987: Label Bind A, TextBox Bind B, B的Setter进行检查设定A 03/12 10:16
2F:→ yeo1987: 如果是要等Button按下才做动作那就用事件或ICommand 03/12 10:17
所以说 假设今天有多组互相对应的 TextBox 跟 Label
同时在 Button 按下後更新, 就要有相对应多的 Model 变数
※ 编辑: b26168 (114.42.50.55), 03/12/2017 10:43:18
3F:→ yeo1987: 这得看你设计的需求与方式, 也有Bind同一变数的情形 03/12 10:50
4F:→ testPtt: Button click notify Label get TextBox value 03/12 11:07
5F:推 largesperm: 要在 WPF 做到完全真正的 MVVM 不容易 03/12 14:14
6F:→ largesperm: 研究一下 Micro.Caliburn之类的工具 03/12 14:14
7F:→ lightyan: 应该是在button_click里面 写上 03/13 11:46
8F:→ lightyan: label.Content = textBox.Text; 03/13 11:46
9F:推 jinmin88: 绑同一个变数..TextBox用OneWayToSource, Label用Oneway 03/13 13:40
10F:→ jinmin88: 这个case可以不需要button了 可以靠updateTrigger 03/13 13:41