개체를 만들고 일련의 양식을 통해 사용자 정의 컨트롤로 전달하는 데 다음 코드가 있습니다.이 예제에서 참조 유형에 대해 무엇을 놓치고 있습니까?
public class MyObject
{
public List<AnObject> Objects {get; set;}
}
양식 1 :
private void MyObject _myObject = new MyObject{Objects = new List<AnObject>()};
...
Form2 form2 = new Form2(ref _myObject);
form2.Show();
양식 2 : 나는 위해 UserControl1의 개체에 새로운 myObject에()를 추가하면
public Form2(ref MyObject myObject)
{
UserControl1 myControl = new UserControl1();
myControl.Objects = myObjects.Objects
}
위해 UserControl1는
public List<AnObject> Objects {get; set;}
...
Objects.Add(new myObject());
, 그것은 아무튼 Form1에서 내 원래 목록을 업데이트하지 마십시오. myObject를 참조로 전달하고 있습니다. 내가 생각할 수있는 유일한 방법은 내 값을 어떻게 든 언 박싱하는 것입니다. Form2에 AnObject 목록을 UserControl1에 할당하는 것입니다. 내가 도대체 뭘 잘못하고있는 겁니까?
무슨 일이 일어나고 있는지 알려주는 코드가 충분하지 않습니다. 짧지 만 완벽한 프로그램을 제공하십시오. 이상적인 콘솔 앱입니다. 여기서 사용자 인터페이스를 사용할 필요가 없습니다. 헨크 (Henk)가 말했듯이, 여기에도 '심판'이 필요하지 않습니다. –
myObjects를 컨트롤 (예 : ListBox)의 DataSource로 사용하고 myObjects에 추가 할 때 해당 컨트롤이 업데이트되지 않습니까? – m0sa