0

我刚刚使用 Microsoft Connect 记录了此问题,但我想知道是否有其他人遇到过它并找到了修复程序。谷歌没有显示太多...

简单的复制:

  • 应用程序有一个设置了 MaxLength 的 WPF 文本框
  • 使用 TabletPC 输入面板写入超出允许范围的文本
  • 按 T​​abletPC 面板上的“插入”,应用程序崩溃

除了将我的应用程序的行为更改为不使用 MaxLength 之外,有人知道解决方案吗?

(如果微软回来提供任何建议,我会在这里发布。)

编辑:应该指定我正在运行 .NET 3.5 和 Windows 7。

4

3 回答 3

1

根据您的应用程序架构,如果您使用的是 MVVM,我可能会删除 MaxLength,然后在您的 ViewModel 对象中进行验证,以确保该值与您期望的长度相匹配。

否则我可能会使用本文中描述的绑定验证。

在诸如邮政编码或电话号码之类的真正长度受限的情况下,这不是我所说的最佳选择,但它可以让您将所有验证内化在一个地方。

于 2010-03-11T16:35:12.110 回答
0

老实说,我对 WPF 或 Tablet PC 交互都没有经验,所以我在这里盲目射击,但我要么击中目标,要么学习一些东西 :)

从我简单的观点来看,我看到了许多变通方法,都涉及删除最大长度:

  1. 提交时,如果太长,截断 VM 中的字符串
  2. 提交时,提醒用户截断并在文本框中将截断的字符串返回给他们以进行编辑
  3. 将事件挂在文本框上,并在字段旁边使用标签警告截断字符串“OnChange”,例如 Web 表单错误。

无论如何,我希望你能得到一些知道他们在说什么的人的回应;)

于 2010-03-11T16:05:44.577 回答
0

显然,这已在 .NET 4.0 中修复,但没有计划修复 3.5。MS 的建议是处理 TextChanged 事件以自动提供 MaxLength(ew!)。

于 2010-03-15T22:21:23.400 回答