2010-07-20 6 views
0

J'ai un contrôle listview, et c'est l'actualisation des données en continu. Je voudrais "mettre" un XElement dans une rangée, donc je si par exemple. double-cliquez sur la ligne, le double-clic appelle une méthode, avec les paramètres xelement 'cachés'.Contenant des "objets" cachés dans ListviewItem, avec héritage?

J'espère que j'ai commencé à le résoudre, le débogueur ne montre aucune erreur, mais je ne sais pas comment atteindre l'élément XElement-typo de la ligne.

Voici la partie pertinente de mon code:

ListViewItem item = new ListViewItem(); 
      item = listBighit.Items.Add(new Offer (sor[0].ToString(),xml1,xml2)); 
      item.SubItems.Add(sor[1].ToString()); 
      item.SubItems.Add(sor[2].ToString()); 
      item.SubItems.Add(sor[3].ToString()); 
      item.SubItems.Add(sor[4].ToString()); 
      item.SubItems.Add(sor[5].ToString()); 

public class Offer : ListViewItem 
{ 
    protected XElement _xml1; 
    protected XElement _xml2; 
    public Offer(string penznem, XElement xml1, XElement xml2) 
    { 
     this.xmlAddress1 = xml1; 
     this.xmlAddress2 = xml2; 
     base.Text = penznem; 
    } 
    public XElement xmlAddress1 
    { get { return this._xml1; } set { this._xml1 = value; } } 
    public XElement xmlAddress2 
    { get { return this._xml2; } set { this._xml2 = value; } } 
} 

J'espère un gourou peut me aider :) Merci!

Répondre

0
ListViewItem item = new ListViewItem(); 
item = listBighit.Items.Add(new Offer (sor[0].ToString(),xml1,xml2)); 

La première ligne ne fait rien. J'imagine ce que vous vraiment voulez faire est de créer une offre, pas un ListViewItem:

Offer item = new Offer(...); 
item.SubItems.Add(...); 
// etc.. 
listBighit.Items.Add(item); 

Ensuite, lorsque vous devez récupérer un élément de la ListView, jeter retour à une offre:

Offer first = (Offer)listBighit.Items[0]; 
+0

Merci! Votre solution a parfaitement fonctionné! – speter

Questions connexes