Tablet PC/WPF 文本框错误 - 有解决方法吗?
我刚刚使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据您的应用程序的体系结构,如果您使用 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.
老实说,我没有 WPF 或 Tablet PC 交互经验,所以我在这里盲目射击,但我要么击中目标,要么学到一些东西:)
从我简单化的角度来看,我看到了许多解决方法,所有这些都涉及删除最大长度:
不管怎样,我希望你能从一些知道自己在说什么的人那里得到一些回应;)
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:
Anyway, I hope you get some responses from some people who know what they are talking about ;)
显然,这个问题已在 .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!).