如何在没有任何数据绑定的情况下以编程方式添加多列ListViewItem?

问题描述:

我有3头一个ListView,在XAML声明如下:如何在没有任何数据绑定的情况下以编程方式添加多列ListViewItem?

<ListView Name="myListView"> 
    <ListView.View> 
    <GridView> 
     <GridViewColumn Header="H1"/> 
     <GridViewColumn Header="H2"/> 
     <GridViewColumn Header="H3"/> 
    </GridView> 
    </ListView.View> 
</ListView> 

我想一个ListViewItem的程序添加到该ListView控件,能够设置一个ListViewItem中的内容将在第一个去下,第二和第三列。到目前为止,我只得到了这么多:

ListViewItem l = new ListViewItem(); 
l.Content = "Content"; 
myListView.Items.Add(l); 

这将每列设置为字符串“内容”。如何更改上面的代码,以便我可以添加一个ListViewItem,分别在第一列,第二列和第三列下显示“内容1”,“内容2”和“内容3”?我试图在ListViewItem中查找SubItem或ListViewSubItem属性,但什么也没找到。

我假设有一个简单的解决方案,但也许我错了。请不要提及数据绑定,因为我只想回答以编程方式设置Content属性以反映每列中个别更改的问题。

非常感谢。

这不是数据绑定。将Binding语句看作给该列起一个名字。

<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> 

在代码:

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

ķ它的作品!谢谢。 – Dalal 2010-06-30 19:15:05

+0

非常好!谢谢! – Haris 2013-04-24 13:02:34

+0

只有在编译时已知列数时才能使用。我还没有找到一个解决方案来添加一个字符串的数组,它的计数在运行时是已知的。 – Rajiv 2013-06-04 23:33:14

这里是你做了什么。

您必须先设置列标题,否则不会显示。使用字符串数组添加列表视图项目。

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); 
    } 
} 

结果的截图

Scr

+2

我收到这个错误:'System.Windows.Controls.ListViewItem'不包含带'1'参数的构造函数。'我正在使用WPF。也许我忘了说明这一点。我希望你的解决方案虽然工作。这会让它变得更容易。 – Dalal 2010-06-30 19:02:11

+1

该代码不起作用,如上所述相同的错误 – 2013-06-02 13:14:07

+0

您能否更新图片链接?现在已经死了。 Thx – abalter 2014-04-25 19:11:19