如何在没有任何数据绑定的情况下以编程方式添加多列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"});
答
在winforms这里是你做了什么。
您必须先设置列标题,否则不会显示。使用字符串数组添加列表视图项目。
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);
}
}
结果的截图
ķ它的作品!谢谢。 – Dalal 2010-06-30 19:15:05
非常好!谢谢! – Haris 2013-04-24 13:02:34
只有在编译时已知列数时才能使用。我还没有找到一个解决方案来添加一个字符串的数组,它的计数在运行时是已知的。 – Rajiv 2013-06-04 23:33:14