Tablet PC/WPF 文本框错误 - 有解决方法吗?

发布于 2024-08-24 18:13:54 字数 359 浏览 8 评论 0原文

我刚刚使用 Microsoft Connect 记录了此问题,但我想知道是否有其他人遇到过此问题并找到了解决方案。 Google 没有显示太多...

简单重现:

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

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

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

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

I've just logged this with Microsoft Connect, but I'm wondering whether anyone else has come across it and found a fix. Google's not showing much...

Simple repro:

  • Application has a WPF textbox with MaxLength set
  • Use the TabletPC input panel to write more text than is allowed
  • Press "insert" on the TabletPC panel and the application crashes

Beyond changing the behaviour of my application to not use MaxLength, does anyone know of a solution?

(I'll post here if Microsoft come back with any advice.)

EDIT: Should have specified I'm running .NET 3.5 and Windows 7.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ゃ懵逼小萝莉 2024-08-31 18:13:54

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

否则,我可能会使用绑定验证,就像本文中描述的那样。

对于邮政编码或电话号码等真正长度有限的情况,这不是我所说的最佳选择,但它可以让您将所有验证内部化在一处。

Depending on your application's architecture, if you're using MVVM, I might remove the MaxLength and then do validation in your ViewModel object to ensure the value matches the length you expect.

Otherwise I might use the Binding Validation like what is described in this article.

Not what I would call optimal in the case of something that's truly length limited like a zip code or a phone number, but it lets you internalize all the validation in one place.

め七分饶幸 2024-08-31 18:13:54

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

从我简单化的角度来看,我看到了许多解决方法,所有这些都涉及删除最大长度:

  1. 提交时,如果太长,则截断虚拟机中的字符串
  2. 提交时,提醒用户截断并将截断的字符串显示在文本框中以供编辑
  3. 将事件挂出文本框并截断字符串“ OnChange”,字段旁边有一个标签警报,就像网络表单错误一样。

不管怎样,我希望你能从一些知道自己在说什么的人那里得到一些回应;)

I'll be honest, I've no experience with either WPF or Tablet PC interactions so I'm shooting blind here but I'll either hit the target or learn something :)

From my simplistic view point I see a number of work arounds, all involve removing the max length:

  1. On submission, truncate the string in the VM if too long
  2. On submission, alert user to truncation and present truncated string back to them in the textbox for editing
  3. Hang an event off the textbox and truncate the string "OnChange" with a label alert adjacent to the field, like a web form error.

Anyway, I hope you get some responses from some people who know what they are talking about ;)

久而酒知 2024-08-31 18:13:54

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

Apparently this is fixed in .NET 4.0, but no plans for a 3.5 fix. The suggestion from MS was to handle the TextChanged event to provide MaxLength automatically (ew!).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文