2011-11-09 1 views
1

J'ai un DataGrid qui a une colonne contenant un contrôle NumericUpDown et qui a rencontré un comportement très ennuyeux. Si l'utilisateur définit la valeur du contrôle et continue sur le contenu de la cellule entourant le contrôle, la valeur du contrôle semble réinitialiser. Cela s'avère particulièrement ennuyeux car ce contrôle fonctionne en conjonction avec une valeur "pool" en ce que la quantité disponible au total pour toutes les lignes dépend d'une autre valeur en dehors de la grille de données. Ce n'est pas aussi simple que d'utiliser l'attribut MaxValue du contrôle, car le total choisi doit couvrir toutes les lignes. Je capture l'événement ValueChanging et annule s'il n'y a rien de disponible dans le pool, cependant ce pool est incorrect en raison du comportement buggé de cliquer en dehors de NumericUpDown. Est-ce que quelqu'un d'autre a connu quelque chose de similaire et y a-t-il des solutions de contournement?Silverlight NumericUpDown dans le comportement étrange de Datagrid

MISE À JOUR # 1:
J'ai remarqué que ce comportement ne se produit que si j'accroche sur les ValueChanging/événements Changed. Si je ne gère pas ces événements, le comportement de réinitialisation bizarre ne se produit pas lorsque je clique juste à l'extérieur du contrôle.

MISE À JOUR # 2:
J'ai mis le doigt sur la question de la remise à zéro qui était dû à mon code. Toutefois, il reste le problème de cliquer sur la zone de cellule entourant NumericUpDown provoquant le déclenchement des événements ValueChanging/Modged. J'ai également remarqué que si je débogue et met un point d'arrêt sur ces événements, ils continuent à tirer jusqu'à ce que je supprime les points d'arrêt.

Répondre