ページ 11

[C#] リストボックスの項目編集

Posted: 2013年5月09日(木) 17:09
by オカピーα
こんにちは、またもやC#でごめんなさい。
現在リストボックスを使っていますが、項目が編集できません・・・
指定の項目の文字列を変更したいときはどうしたらいいのでしょう?
いろいろプロパティに放り込んでみましたが無反応で・・・
少し調べたところ、以下の方法があるそうです。

追加
 ↓
削除
 ↓
選択

しかしあまりにまどろっこしくて・・・いい方法はないでしょうか?

Re: [C#] リストボックスの項目編集

Posted: 2013年5月09日(木) 17:38
by バグ
そんなにまどろっこしいかな?
私がオカピーαさんの質問を誤読していなければ、下記の3行でいけると思います(^-^)

コード:

// 選択項目のインデックスを取得する
int id = listBox1.SelectedIndex;

// 何も選択されてない場合は何もしない
if (id == -1) return;

// 選択項目のアイテムを新しい文字列に変更する
listBox1.Items[id] = string.Format("Test {0}", id); // 変更したい文字列をここに書く

Re: [C#] リストボックスの項目編集

Posted: 2013年5月10日(金) 19:00
by YuO
BindingList<T>をListBoxのデータソースに入れている場合は,Tのプロパティを変更しても,そのままではListBoxは変更されません。
TがINotifyPropertyChangedを実装していおり,変更時にINotifyPropertyChangedのPropertyChangedイベントを発生させる必要があります。

Re: [C#] リストボックスの項目編集

Posted: 2013年5月11日(土) 15:27
by オカピーα
バグ さんが書きました:そんなにまどろっこしいかな?
私がオカピーαさんの質問を誤読していなければ、下記の3行でいけると思います(^-^)

コード:

// 選択項目のインデックスを取得する
int id = listBox1.SelectedIndex;

// 何も選択されてない場合は何もしない
if (id == -1) return;

// 選択項目のアイテムを新しい文字列に変更する
listBox1.Items[id] = string.Format("Test {0}", id); // 変更したい文字列をここに書く
できました!ありがとうございます!