Структура знает о своем содержащем классе тип , но не знает ни о каком конкретном экземпляре этого типа, если вы не укажете это.Например, вы можете создать конструктор, который принимает объект Form1, и он может сохранить ссылку на эту форму в переменной члена.
public partial class Form1 : Form
{
public struct OrderLineItem
{
string someString;
int index;
Form1 parentForm;
internal OrderLineItem(Form1 parentForm)
{
this = new OrderLineItem();
this.parentForm = parentForm;
}
string ToString()
{
if (parentForm == null)
return string.Empty;
else
return someString + parentForm.sizeComboBox.Items[index].ToString();
}
}
}
Тем не менее, это серьезно сомнительный дизайн.
Многоуровневая структура этого приложения выглядит перевернутой.Объекты order-line-item должны существовать на более низком уровне, чем уровень пользовательского интерфейса.Пользовательский интерфейс иногда может видеть бизнес-объекты (заказ, элемент строки заказа и т. Д.), Но бизнес-объекты не должны ничего знать о пользовательском интерфейсе.
Если вы можете инвертировать эту структуру, он сделаеткод намного чище.