2017-06-09 5 views
0

List<Student>のメンバーを表示するリストボックスがあります。Studentは、名前などのプロパティを持つクラスです。リストのメンバーを表示するリストボックスもあります。whereペーパーis similar toスチューデント。ListBoxで選択した項目を抽出するC#

ボタンをクリックすると、StudentPaperはどのようにしてdict {Paper.Name:Student.Name}に追加されますか?

私は Form2

selectedStudent_Form2 = studentListBox_Form2.SelectedItem;

を試してみました。しかし、私は

Cannot implicitly convert type 'object' to 'TestProjectForProject5.Student'.

答えて

0

あなたの最初のリストボックスの上に置いてSelectionChangedイベントを

LB1.SelectionChanged += LB1_SelectionChanged; 
を言ってエラーが出ます10

そして、そのようSelectionChangedメソッドを実装します。

oid LB1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    LB2.SelectedItems.Clear(); 
    foreach(var selected in LB1.SelectedItems) 
    { 
     LB2.SelectedItems.Add(selected); 
    } 
} 

注:LB =リストボックス

2

、あなたが選択した名前のためにあなたのデータ構造を検索することができ、あなたのリストボックスに生徒の名前を追加したと仮定すると、 (nameToSearch)。

string nameToSearch = studentListBox_Form2.SelectedItem.ToString(); 

foreach (Student s in students) { //or use a for loop 
    if (s.Name == nameToSearch) { 
     //code 
    } 
} 
0

ListBox.SelectedItemは常にオブジェクト型の値を返します。したがって、そのselectedItemをstudentに直接割り当てることはできません。あなたはそれをキャストする必要があります。しかし、何かを学生のタイプに単純にキャストすることはできません。 displayValueとしてstudentを設定した場合、selectedItemをstudentとしてキャストできます。しかし、displayValueをstudentとして設定したとは思わないので、displayValueを生徒の名前として設定している可能性があります。

あなたができることは、listBox(studentとpaperの両方)のdisplayValueをそれぞれstudentの名前とpaper'sの名前に設定することです。 studentListBox_Form2.SelectedItem.ToString()および papername by studentListBox_Form2.SelectedItem.ToString()によってstudentNameが取得されます。

これをキーと値のペアとして使用して、辞書に追加することができます

関連する問題