1

タイトルが間違っていてすみません、他にどう表現すればいいのかわかりません。

基本的に、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);

その後、 ArrayListpostsがメイン フォームに返されます。次のように 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]post[1]しかし、 CheckedListBoxから取得する方法がないため、それができません。

これを行う唯一の方法は、チェックされている CheckedListBox 内のすべての項目をループしてから、投稿のタイトルを の要素と比較することpostsです。それらが一致する場合、使用する配列インデックスが like になりpost = posts[index][1]ます。

しかし、これを行うにはもっと良い方法があるはずだと自分に言い聞かせ続けています。ある?

4

1 に答える 1

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 を廃止するようお願いしたいと思います。

于 2012-08-26T05:56:12.153 に答える