WPF: Modifications de la zone de texte avec l'accent ne sont pas commis jusqu'à ce que, après l'événement de Clôture des incendies
J'ai une fenêtre WPF pour l'édition des informations de base de données, qui est représenté à l'aide d'un objet Entity Framework. Lorsque l'utilisateur ferme la fenêtre, je tiens à remarquer dans l'événement de Clôture de savoir si l'information a changé et affiche une boîte de message vous invitant à enregistrer les modifications apportées à la base de données.
Malheureusement, les changements à l'concentre actuellement sur l'édition ne sont pas affectés à la source de liaison jusqu'à la modifier perd le focus, ce qui arrive à un certain point, après la Clôture de la manifestation a été traitée.
Idéalement, il y aurait une routine qui engage tous les changements dans la hiérarchie vue que je pouvais l'appeler avant de vérifier pour voir si mon entité a été modifiée. J'ai aussi regardé pour plus d'informations sur par programme de compensation de l'accent dans le contrôle avec l'accent, mais ne peuvent pas comprendre comment le faire.
Ma question est, comment est-ce généralement traitées?
- double question: stackoverflow.com/questions/57493/...
- Une autre façon de résoudre ce problème: stackoverflow.com/a/17458095/194717
Vous devez vous connecter pour publier un commentaire.
Cela devrait vous obtenez assez proche:
if ((textBox != null) && (textBox.CanUndo)) {...}
Dans WPF, vous pouvez changer
Binding
pour mettre à jour la source sur les modifications, plutôt que de perdre le focus. Ceci est fait en mettant leUpdateSourceTrigger
propriétéPropertyChanged
:Vous devrez peut-être supprimer le focus de l'élément courant
En supposant qu'il n'y a plus d'un contrôle dans l'onglet séquence, la solution suivante semble être complet et général (juste couper-coller)...
Aussi regarder les suggestions dans cette post
La façon la plus simple est de mettre l'accent, quelque part.
Vous pouvez définir le focus immédiatement, mais le réglage du focus n'importe où va déclencher la perte focus sur n'importe quel type de contrôle et de faire mettre à jour ses trucs:
Une autre façon serait d'obtenir l'élément ayant le focus, obtenir l'élément de liaison de l'élément ayant le focus, et de déclencher la mise à jour manuellement. Un exemple pour les TextBox et ComboBox (vous auriez besoin d'ajouter tout type de contrôle que vous devez prendre en charge):