我正在尝试创建一个只允许数字字符和小数点的TextBox
。我在编写代码时不需要帮助,但是在概念上。我正在使用MVVM
来设计WPF
应用程序,我不确定是使用事件还是事件命令。
我已经阅读了几个关于这个主题的不同观点:
MVVM
)的“纯洁”:从来没有您View
后面的代码。为防止这种情况,请使用MVVM Light Library。简而言之,将事件转换为命令,以便可以在ViewModel
。MVVM
)的(可能过度)“纯度”:不是所有事都必须在ViewModel
处理,而且没关系创建Events
以处理某些UI
要求。 由于简单性,我更倾向于second option,正如我之前所说,第一种选择似乎有点极端。在我的具体情况下(仅创建一个数字TextBox
),大多数人会更喜欢上述选项中的任何一个或我没有发现的选项吗?
答案 0 :(得分:5)
您应该将此作为.cs文件中的事件处理。您正尝试在控件中添加功能。就像TextBox中的Text一样。它们都是.cs文件中的handeld。 ViewModel可用于保存基于Data for View的数据和行为,而不是Control的功能。
答案 1 :(得分:0)
这应该直接在View中处理,而不是涉及ViewModel,但是不需要重新发明轮子。
根据您的确切数字要求,使用扩展WPF工具包中的DoubleUpDown或IntegerUpDown等控件(可通过NUGet获取)