2016-08-04 67 views
1

调用的形式InitializeComponent后一列显示对象的名单在ListView,我创建了一个List<DeletionTarget>如何与每个属性

var deletionList = new List<DeletionTarget>(); 

deletionList.Add(new DeletionTarget("path1", new DateTime(2016, 1, 10), false)); 
deletionList.Add(new DeletionTarget("path2", new DateTime(2016, 2, 10), true)); 
deletionList.Add(new DeletionTarget("path3", new DateTime(2016, 3, 10), false)); 
deletionList.Add(new DeletionTarget("path4", new DateTime(2016, 4, 10), true)); 
deletionList.Add(new DeletionTarget("path5", new DateTime(2016, 5, 10), false)); 

哪里DeletionTarget是具有这些特性的简单对象:

public string Path; 
public DateTime Period; 
public bool Recurse; 

public DeletionTarget(string path, DateTime period, bool recurse) 
{ 
    Path = path; 
    Period = period; 
    Recurse = recurse; 
} 

接下来,我称之为InitializeView()方法:

public void InitializeListView() 
{ 
    var header1 = listView1.Columns.Add("Path", -2, HorizontalAlignment.Left); 
    var header2 = listView1.Columns.Add("Period", -2, HorizontalAlignment.Left); 
    var header3 = listView1.Columns.Add("Recurse", -2, HorizontalAlignment.Left); 
} 

这应该一些列添加到ListView(每个属性在DeletionTarget对象)。现在是时候将数据添加到ListView

foreach (var item in deletionList) 
{ 
    var lvi = new ListViewItem(new[] { item.Path, item.Period.ToString(), item.Recurse.ToString() }); 
    listView1.Items.Add(lvi); 
} 

当我运行程序,这是我的表是这样的:

enter image description here

正如你可以看到,这是相当无用。我需要每个项目显示在一个单独的行上,每个属性都有一列。有人可以帮助我了解我在这里做错了吗?

谢谢

回答

0

这是因为发生在ListViewView选项被设置为错误的选项(LargeIcon)。我能这样做,以克服这一以下内容:

在Visual Studio中,请单击设计模式ListView中的小箭头。选择视图,然后详细介绍: enter image description here

的项目现在显示为每个实例化一个新行,和所有的财产列的存在: enter image description here