Я использую этот метод, и он продолжает говорить, что у listView1 есть элементы, хотя ни один из них не отображается в списке?C# ListViewItems не возвращается пустым
private void button8_Click(object sender, EventArgs e)
{
string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt";
if (Directory.Exists(filePath))
{
listView1.Items.Clear();
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
using (TextReader sr = new StreamReader(fs))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] data = line.Split(new char[] { ',' });
ListViewItem lvi = new ListViewItem();
if (listView1.Items.Count > 0)
{
MessageBox.Show("ListViewCount#1: '" + listView1.Items.Count + "'.");
}
lvi.Text = data[0];
lvi.SubItems.Add(data[1]);
lvi.SubItems.Add(data[3]);
lvi.SubItems.Add(data[4]);
lvi.Tag = data[2];
listView1.Items.Add(lvi);
if (listView1.Items.Count > 0)
{
MessageBox.Show("ListViewCount#2: '" + listView1.Items.Count + "'.");
}
}
}
}
if (listView1.Items.Count == 0)
{
MessageBox.Show("ERROR: ListView has no data to show.");
return;
}
}
}
listView1.count больше 0 после «LVI» части, до этого он пуст (проверено с MessageBox подсчета ListView1 до и после этого метода), почему это говорить оно имеет «ListView1 .count 1 ", если все" данные "пустые? Я пробовал другие способы обойти это, используя пользовательские логические значения в других методах, но его просто нецелесообразно ссылаться на них, все, что я хочу сделать, - это если listview1 равен 0, сообщите пользователю, что данных нет.
Каков вклад для вашего 'StreamReader'? Возможно ли, что вход представляет собой файл с только символом новой строки? –
Можете ли вы добавить отсутствующий код? Где создается экземпляр 'listView1'? – kat1330
Непонятно, что вы просите. Также такие вопросы нуждаются в [MCVE] –