How can I programmatically add a multi-column ListViewItem without any data binding?

你离开我真会死。 提交于 2019-12-04 06:06:17

This is not databinding. Think of the Binding statement as giving the column a name.

<ListView Name="myListView">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="H1" DisplayMemberBinding="{Binding Col1}"/>
            <GridViewColumn Header="H2" DisplayMemberBinding="{Binding Col2}"/>
            <GridViewColumn Header="H3" DisplayMemberBinding="{Binding Col3}"/>
        </GridView>
    </ListView.View>
</ListView>

In code:

myListView.Items.Add(new { Col1 = "test1", Col2 = "Test2", Col3="test3"});

In here is what you do.

You have to set the column headins first, otherwise nothing will show. The add the list view items using a string array.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        listView1.View=View.Details;
        //Set Columns
        listView1.Columns.Add("Col1");
        listView1.Columns.Add("Col2");
        listView1.Columns.Add("Col3");
        //Fill Rows
        ListViewItem lvi;
        lvi=new ListViewItem(new string[] { "A", "B", "C" });
        listView1.Items.Add(lvi);
        lvi=new ListViewItem(new string[] { "D", "E", "F" });
        listView1.Items.Add(lvi);
        lvi=new ListViewItem(new string[] { "G", "H", "I" });
        listView1.Items.Add(lvi);
    }
}

a screenshot of the result is

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!