取消WPF TextBox已更改事件

1ke*_*iff 4 .net c# wpf textbox

我正在学习来自WinForms开发的WPF.

我有一个TextChanged事件分配给我的WPF应用程序中的一个TextBox.如果用户输入无效数据,我希望能够恢复到以前的文本值.

在旧的表单日,我会用OldValue替换NewValue,但似乎WPF的工作方式不同.

关于我能做到什么的任何想法都实现了这个目标?我只是不想用WPF吗?

谢谢.

Den*_*nis 22

你可以这两种方式:

  1. 收听PreviewTextInput事件并设置e.Handled = true为停止TextChanged事件.

  2. 使用WPF验证.Paul Stovell在Codeproject上发表了一篇很棒的文章,在他的博客上发表了一篇帖子.

这些文章将帮助您入门.我第一次验证时遇到的一件事就是验证规则仅在绑定更新源时运行.

  • 它的 PreviewTextInput 不是 PreviewTextChanged ! (2认同)
  • 如果用户将某些文本粘贴到文本框中,则不会触发PreviewTextInput. (2认同)