Передать данные от родителя в диалоговое окно - PullRequest
3 голосов
/ 13 августа 2010

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

frmChild frm = new frmChild();
frm.ShowDialog();

Ответы [ 3 ]

7 голосов
/ 13 августа 2010

В форму можно добавить свойство или метод, который принимает List<items> и заполняет ComboBox.

Например:

List<ItemType> items = GetItemsForFormsComboBox();
frmChild frm = new frmChild();
frm.SetComboItems(items);
frm.ShowDialog();

// in the form
public void SetComboItems(List<ItemType> items)
{
    foreach(var item in items)
    {
        myCombo.Add( /* construct combo item and use item to populate it here */ );
    }
}
1 голос
/ 13 августа 2010

Вы можете сделать свойство вашего диалога для получения / установки списка <> данных.

0 голосов
/ 13 августа 2010

Вы можете добавить свойство или метод на ваша форма, которая принимает список и заполняет ComboBox

Затем перегрузите конструктор.

public class ComboBoxWindow : Window
{
    public ComboBoxWindow (Window origin)
    {
        // Now you can access your parent window's List<>.
    }

    // If necessary you can keep a reference to it.
    private Window _origin;
}

OR

public class ComboBoxWindow : Window
{   
    // If necessary you can keep a reference to it.
    private IList _items;

    public ComboBoxWindow (IList _items)
    {
        // Now you can access your list directly.
    }
}

Оба пути в порядке.

{наслаждаться}

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