2010-11-12 2 views
3

J'ai un DevExpress xtraGrid que je veux lier. Lorsque j'essaie de lier, le compilateur donne une erreur que la source de données gridView est en lecture seule. J'ai essayé l'approche ci-dessous, mon code estPourquoi la grille devient en lecture seule? Comment éviter le problème de grille readonly?

NorthwindDataContext db = new NorthwindDataContext(); 
var r = from p in db.Orders 
     select p; 
var r2 = from p in db.Order_Details 
     select p; 

gridView1.DataSource = r; 
gridView2.DataSource = r2; 

Je reçois l'erreur suivante: propriété ou indexeur « DevExpress.XtraGrid.Views.Base.BaseView.DataSource » ne peut pas être attribué à - il est en lecture seule

J'ai vérifié ma propriété de la colonne sur le gridView et il n'est pas en lecture seule. Pourquoi je reçois cette erreur? En fait ma grille est vide, je vais la lier à une base de données.

Répondre

6

Vous devez définir le DataSource du GridControl qui contrôle votre GridView, pas le GridView lui-même.

Sur le site de DevExpress: How to: Bind a Control to a Database at Runtime

+0

merci pour help.my grille besoin d'afficher la relation de détail Master.Suppose j'utilise northwind base de données.J'ai trois client de table, Order, Order_details.Je veux montrer les valeurs de cette table de relation dans ma grille.Comment – shamim

+0

@ Samham, DevExpress prend en charge les tables maître-détail, la documentation est disponible sur http://documentation.devexpress.com/#WindowsForms/CustomDocument3473. Vous devriez le lire et poser des questions spécifiques si vous rencontrez des difficultés. – dsolimano

0

Par défaut, le XtraGrid reconnaîtra vos relations et créer des vues clonés pour les tables enfant. Vous pouvez définir vos propres GridViews si vous souhaitez modifier les options d'affichage (masquer les colonnes, modifier la mise en forme, etc.), mais cela vous obligera à définir la propriété LevelTree de GridControl.

Questions connexes