Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Wpf文本框文本更改和预览输出之间的差异_Wpf_Events - Fatal编程技术网

C#Wpf文本框文本更改和预览输出之间的差异

C#Wpf文本框文本更改和预览输出之间的差异,wpf,events,Wpf,Events,我目前正在为我的文本框执行验证,我不确定要选择哪个事件,TextChanged或previewtextendeput,因为两者似乎没有区别 这些事件有何不同 摘自框架文档: PreviewTestInput事件允许组件或应用程序侦听 用于以独立于设备的方式进行文本输入。键盘是最重要的 预演的主要手段;但是语言、笔迹和其他 输入设备也可以生成预览输出 因为在默认键盘中或通过 输入法编辑器多个键事件可能只引发一个文本输入 事件 此事件将为服务器创建别名 TextCompositionManager

我目前正在为我的文本框执行验证,我不确定要选择哪个事件,
TextChanged
previewtextendeput
,因为两者似乎没有区别


这些事件有何不同

摘自框架文档:

PreviewTestInput事件允许组件或应用程序侦听 用于以独立于设备的方式进行文本输入。键盘是最重要的 预演的主要手段;但是语言、笔迹和其他 输入设备也可以生成预览输出

因为在默认键盘中或通过 输入法编辑器多个键事件可能只引发一个文本输入 事件

此事件将为服务器创建别名 TextCompositionManager.PreviewTimeput此类的附加事件, 因此,当 UIElement作为基本元素继承。事件处理程序 附加到PreviewTestInput事件的附加到基础 TextCompositionManager.PreviewT退出附加事件并接收 相同的事件数据实例

对于文本框,当其文本更改时发生此事件;暂时 RichTextBox,当任何内容或格式更改时发生此事件 (例如,图像、表格或背景色)

我的2美分:


这两件事有很大的不同<代码>文本更改事件将在textbox处理文本并更新控件后执行。另一方面,当您关注文本框并在输入设备(例如键盘)上执行预执行操作时,即使文本框还不知道即将从设备输入的内容,也会执行
PreviewTimeput
事件。

摘自框架文档:

PreviewTestInput事件允许组件或应用程序侦听 用于以独立于设备的方式进行文本输入。键盘是最重要的 预演的主要手段;但是语言、笔迹和其他 输入设备也可以生成预览输出

因为在默认键盘中或通过 输入法编辑器多个键事件可能只引发一个文本输入 事件

此事件将为服务器创建别名 TextCompositionManager.PreviewTimeput此类的附加事件, 因此,当 UIElement作为基本元素继承。事件处理程序 附加到PreviewTestInput事件的附加到基础 TextCompositionManager.PreviewT退出附加事件并接收 相同的事件数据实例

对于文本框,当其文本更改时发生此事件;暂时 RichTextBox,当任何内容或格式更改时发生此事件 (例如,图像、表格或背景色)

我的2美分:

这两件事有很大的不同<代码>文本更改事件将在textbox处理文本并更新控件后执行。另一方面,
previewTimeput
事件将在您关注文本框并在输入设备(例如键盘)上执行预执行操作时执行,甚至在文本框对即将从设备输入的内容没有任何概念之前。

textbox
以独立于设备的方式获取文本时,事件将被触发
previewTestInput
(类型)的事件参数的text属性将仅包含最后一个输入操作的文本。在键盘输入的情况下,最有可能是按下一个键,因此只有一个字符。其他输入方法,如语音输入,一次可以输入多个字符

该事件查看
TextBox
Text
属性,并在其文本以任何方式更改时发生。其类型为
textchangedventargs
的事件参数包含一组
TextChange
对象,这些对象包含有关所做更改的信息

至于你应该选择哪一个进行验证,答案是。。。也不由于您希望验证,我只能假设您将在项目的其他地方使用输入的文本。在WPF中,首选(即模型、视图、视图模型)体系结构,这意味着我们使用它作为输入。在MVVM中有多种验证
TextBox
文本的方法,我首选的方法是接口和。前者在文本数据发送到ViewModel后执行验证,后者将在文本推送到ViewModel之前验证文本

希望这对你有帮助

TextBox
以独立于设备的方式获取文本时,事件被触发。
previewtdeput
(类型)的事件参数的text属性将仅包含最后一个输入操作的文本。在键盘输入的情况下,最有可能是按下一个键,因此只有一个字符。其他输入方法,如语音输入,一次可以输入多个字符

该事件查看
TextBox
Text
属性,并在其文本以任何方式更改时发生。其类型为
textchangedventargs
的事件参数包含一组
TextChange
对象,这些对象包含有关所做更改的信息

至于你应该选择哪一个进行验证,答案是。。。也不由于您希望验证,我只能假设您将在项目的其他地方使用输入的文本。在WPF中,首选(即模型、视图、视图模型)体系结构,这意味着我们使用它作为输入。在MVVM中有多种验证
TextBox
文本的方法,我首选的方法是interf