English 中文(简体)
Tablet PC/WPF textbox bug - any workarounds?
原标题:

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.

最佳回答

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!).

问题回答

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.

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 ;)





相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签