2008-11-11 10 views
3

Bonsoiren lecture seule DataGridView et IEditableObject

J'ai un petit problème avec mon DataGridView dans un environnement Windows Forms .NET projet. La grille est en lecture seule et liée à un BindingList<T> triable qui contient des objets métier personnalisés. Ma classe d'objet métier implémente IEditableObject.

Maintenant, les méthodes BeginEdit et EndEdit sont appelées tout le temps lors de la navigation dans la grille. Existe-t-il un moyen d'empêcher la grille ou la source de liaison de le faire? Il est explicitement mis en lecture seule (ReadOnly = true), donc il n'y a pas de raison du tout (non, disons avec attention que je ne vois rien) pour appeler ces méthodes encore et encore.

Merci pour la lecture :)

Matthias

Répondre

2

Après avoir répliqué votre problème, il semble que le DataGridView appelle une chaîne de méthodes/événements qui finissent d'appeler votre événement IEditableObject peu importe ...

Cela se produit lorsque vous définissez votre BindingList à DataGridView.DataSource et lorsque vous naviguez dans la grille. Quel que soit le mode EditMode que je sélectionne pour DataGridView, le code va entrer dans la méthode IEditableObject.EndEdit() de BusinessObjects.

Il semble que ce soit un vieux BUG du cadre ... J'ai trouvé ceci Bug Report.

Ce rapport de bug est très ancien. Je ne suis pas sûr à 100% si c'est toujours un problème ... peut-être qu'il y a déjà des propriétés pour résoudre ce problème.

Des pensées?

+0

Je ne peux pas ouvrir le lien vers le rapport de bogue. Mais bonne réponse si! Merci beaucoup. J'espère qu'il y a plus d'informations à ce sujet là-bas ... :) –

+0

C'est étrange ... Le lien semble fonctionner pour moi. –

+0

Maintenant ça marche. On dirait que c'est par conception, grmpf. –

Questions connexes