对于错误的标题,我不知道如何描述它。
基本上,我正在阅读Wordpress博客的RSS源中的博客文章,然后将它们添加到CheckedListBox
控件。
博客帖子信息(帖子标题和永久链接)存储在ArrayList
中,如此:
// Store post data
ArrayList post = new ArrayList();
post.Add(this.nodeItem["title"].InnerText);
post.Add(this.nodeItem["link"].InnerText);
// Store item data in posts list
posts.Add(post);
然后将ArrayList posts
返回到我的主窗体。我像这样填充CheckedListBox:
// Grab the latest posts
this.posts = rssReader.getLatestPosts();
// Loop through them and add to latest posts listbox
foreach (ArrayList post in posts)
{
lbLatestPosts.Items.Add(post[0]);
}
运行之后,我的CheckedListBox显示帖子标题。我希望能够根据帖子URL解析信息,如果你记得的话是post[1]
。但是,我无法做到这一点,因为我没有办法从CheckedListBox获取post[1]
。
我能想到的唯一方法是循环检查CheckedListBox中的每个项目,然后将帖子标题与posts
中的元素进行比较。如果它们匹配,我将使用类似post = posts[index][1]
的数组索引。
我一直告诉自己必须有一个更好的方法来做到这一点。有吗?
答案 0 :(得分:0)
直接来自msdn example。像这样:
listView1.CheckBoxes = true;
listView1.View = View.Details;
//Set the column headers and populate the columns.
listView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
ColumnHeader columnHeader1 = new ColumnHeader();
columnHeader1.Text = "Title";
columnHeader1.TextAlign = HorizontalAlignment.Left;
columnHeader1.Width = 146;
listView1.Columns.Add(columnHeader1);
listView1.BeginUpdate();
foreach (ArrayList post in posts)
{
string[] postArray = new string[] { post[0].ToString() };
ListViewItem listItem = new ListViewItem(postArray);
listItem.Tag = post;
listView1.Items.Add(listItem);
}
//Call EndUpdate when you finish adding items to the ListView.
listView1.EndUpdate();
现在你知道如何从listView项中获取post[1]
我想..来自Tag属性。但最后我会要求你取消ArrayLists ..