2016-08-24 26 views
-1

有人可以幫我嗎? 看來Set並沒有被調用。我怎樣才能解決這個問題?設置不需要列表對象的屬性

請注意,_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

至少顯示你調用它的代碼。 –

+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。

如果你想要執行setter,你將不得不去Students = new List<Student<();而不是_students = new List<Student>();