【问题标题】:Returning a ListView from a Function C#从函数 C# 返回 ListView
【发布时间】:2015-01-20 22:00:22
【问题描述】:

我有一个存储多个事务的 XML。现在我想将其解析为 ListView 并返回 ListView。

这里是解析 XML 并返回 ListView 的函数

    public ListView ReadPaths()
    {
        try
        {
            ListView oList = new ListView();

            XmlDocument oXMLDoc = new XmlDocument();
            oXMLDoc.Load("Buchungen.xml");
            XmlNodeList oTransactions = oXMLDoc.SelectNodes("Buchungen/Buchung");

            foreach(XmlNode oTransaction in oTransactions)
            {
                ListViewItem oItem = new ListViewItem();
                if (oTransaction.Attributes["positive"].Value == "true")
                    oItem.ImageIndex = 0;
                else
                    oItem.ImageIndex = 1;

                oItem.SubItems.Add(oTransaction.Attributes["description"].Value);
                oItem.SubItems.Add(oTransaction.Attributes["date"].Value);
                oItem.SubItems.Add(oTransaction.Attributes["amount"].Value);

                oList.Items.Add(oItem);
            }

            return oList;
        }
        catch(Exception ex)
        {
            MessageBox.Show("Fehler beim lesen der Daten: " + ex.Message, "Fehler!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return null;
        }
    }

我将此源分配给的 ListView 的计数大于零 - 这是预期的。

        XMLHandler oXMLHandler = new XMLHandler();
        lstGeldEintraege = oXMLHandler.ReadPaths();
        lstGeldEintraege.Refresh();

在 ^this 调用之后,我的 ListView 不会做任何事情。如果我之后尝试向该 ListView 添加一个元素,它不会做出反应。 ListView.Items.Count 仍然是预期的 +1,但由于某种原因我无法查看 subItems 的值。它还反序列化我添加的项目,但它从不显示一个。如果我删除 ReadPaths() 调用,我的项目会正确显示。这种行为是关于什么的,什么可以帮助解决它?

【问题讨论】:

  • 如果您不喜欢,我很想知道原因。评论将有助于改善我的问题;)
  • 我不太确定,但如果你这样做,所有链接到 lstGeldEintraege 的事件都会在你创建一个新的 ListView 时丢失。
  • 所以我应该返回一个项目数组并将其分配给列表视图?
  • 或者将 ListView 传递给您的函数...清除项目然后重新填充它。
  • 等一下,我会尝试解决方法,看看是否是这个原因

标签: c# xml winforms list listview


【解决方案1】:

已解决

看来 user2888973 是对的。分配 ListView 时会删除所有链接的元素。我只需要使用引用作为参数就可以了! :)

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2015-02-14
    • 2021-08-09
    相关资源
    最近更新 更多