在C#中使用WPF将listview的项目保存在文本文件中

时间:2018-11-11 22:41:31

标签: c#

我做一个小项目来做频率词,结果将显示在包含两列的列表视图中,并将列表视图的项目保存在文本文件中。

我有此代码:

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog o = new OpenFileDialog();
    o.ShowDialog();
    StreamReader read = new StreamReader(File.OpenRead(o.FileName));
    richTextBox1.Text = read.ReadToEnd();
    read.Dispose();
}

private  void button3_Click(object sender, EventArgs e)
{
    SaveFileDialog save = new SaveFileDialog();
    save.Filter = "Text Files(*txt)|*txt";
    save.ShowDialog();
    using (StreamWriter w = new StreamWriter(File.Create(save.FileName)))
    {
        foreach (ListView m in listView1.Items)
        {
            w.WriteLine("{0}{1}", m.Items[0].Text + "\t" + m.Items[1].Text);
        }
        w.Dispose();
    }            
}

private void button2_Click(object sender, EventArgs e)
{
    string inputString = richTextBox1.Text;
    string st = richTextBox1.Text;

    List<string> wordList = inputString.Split(' ').ToList();
    string[] stripwords = new string[] { "or","in","at" };
    foreach (string word in stripwords)
    {
        while (wordList.Contains(word))
        {
            wordList.Remove(word);
        }
    }
    Dictionary<string, int> dictionary = new Dictionary<string, int>();
    foreach (string word in wordList)
    {
        if (word.Length >= 3)
        {
            if (dictionary.ContainsKey(word))
            {
                dictionary[word]++;
            }
            else
            {
                dictionary[word] = 1;
            }
        }     
    }

    // Set the view to show details.
    listView1.View = View.Details;
    // Display grid lines.
    listView1.GridLines = true;
    // Sort the items in the list in ascending order.
    listView1.Sorting = SortOrder.Ascending;

    listView1.Columns.Add("words",66, HorizontalAlignment.Left);
    listView1.Columns.Add("freq 2", -2, HorizontalAlignment.Left);

    foreach (KeyValuePair<string, int> item in dictionary)
    {
        ListViewItem i = new ListViewItem(item.Key);
        i.SubItems.Add(item.Value.ToString());
        listView1.Items.Add(i);
    }   
}

当我执行streamwriter的代码时,会出现以下问题:

  

无法将类型为'System.Windows.Forms.ListViewItem'的对象转换为类型为'System.Windows.Forms.ListView'的对象。

如果有人可以帮助我解决此问题,我将不胜感激

谢谢。

0 个答案:

没有答案