2016-08-24 2 views
-1

誰かが私を助けてくれますか? Setが呼び出されていないようです。どうすればこの問題を回避できますか?Listオブジェクトに対してプロパティが呼び出されていない

_studentsがプロパティグリッドのselectedObjectとして設定されていることに注意してください。追加はUIで行われます。

public class Student 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

public class Record 
{ 
    List<Student> _students = new List<Students>(); 

    public List<Student> Students 
    { 
     get 
     { 
      return _students; 
     } 
     set 
     { 
      // track changes here... 
      MessageBox.Show("value set!"); // this doesn't get called 

      _students = value; 
     } 
    } 
} 
+6

少なくとも、あなたが_try_を呼び出す場所のコードを表示してください。 –

+0

あなたは実際には... *設定* ...何ですか? –

+0

これはあなたのクラスの定義にすぎません。 Recort.Students = blaBla ....を設定するコードはどこにありますか? – ahmet

答えて

1

setのリストに問題があると思います。 Record.Studentsに生徒を追加するメッセージが表示されることはありません。リストを設定した場合のみです。

void Main() 
{ 
    Student s = new Student() { 
     Name = "fred", 
     Age = 10 
     }; 
    List<Student> _s = new List<Student>(); 
    _s.Add(s); 

    Record r = new Record(); 
    r.Students = _s; //You'll get a message here 
    r.Students.Add(s); //No message here 
} 

// Define other methods and classes here 
public class Student 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

public class Record 
{ 
    List<Student> _students = new List<Student>(); 

    public List<Student> Students 
    { 
     get 
     { 
      return _students; 
     } 
     set 
     { 
      // track changes here... 
      MessageBox.Show("value set!"); 
      _students = value; 
     } 
    } 
} 
0

今すぐ_studentsを設定してください。

セッターを実行するには、_students = new List<Student>();ではなくStudents = new List<Student<();にする必要があります。

関連する問題