在ListviewItem中包含隐藏的“对象”,具有继承?

时间:2010-07-20 23:44:44

标签: .net wpf inheritance listviewitem

我有一个listview控件,它的数据不断刷新。我想把一个XElement'放'成一排,所以我是双击该行,双击将使用'hidden'xelement参数调用方法。

我希望我开始解决它,调试器没有显示任何错误,但我不知道如何从行中获取XElement-typo元素。

以下是我的代码的相关部分:

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; } } 
}

我希望有些大师可以帮助我:)谢谢!

1 个答案:

答案 0 :(得分:0)

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

第一行没有做任何事情。我想你真正想要做的是创建一个Offer,而不是一个ListViewItem:

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

然后,当您需要从ListView中检索项目时,将其强制转换为商品:

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