Понимание состояния в управлении winform - PullRequest
1 голос
/ 09 февраля 2012

У меня есть пользовательский элемент управления winform.В конструкторе я создаю экземпляр зависимости.Это похоже на

public IProvider provider {get;set;}

public MyUserControl()
{
   InitializeComponent();
   provider = new MockProvider();//for testing. Will pass into constructor eventually
}

private void MyUserControl_Load(object sender, EventArgs e)
{
   SomeModel model = new SomeModel(provider);//provider is null
   //do work
   model.InsertIntoDb();
}

Я думал, что состояние члена сохраняется до тех пор, пока вы явно не вызовете Form.Close().Так почему же объект провайдера пуст в событии Load?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2012

InitializeComponent() устанавливал Provider = null внутри «родительской» формы (той, которая была создана для пользовательского элемента управления).Оказывается, winforms не очень хорошо поддерживают конструкторы без параметров.

0 голосов
/ 09 февраля 2012

Это должно работать. Убедитесь, что ключевое слово new находится в конструкторе элемента управления, и что-то где-то создает этот элемент управления.

Убедитесь, что новый вызывается перед второй функцией. Может быть, это другой путь в этом. Государство должно сохраняться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...