Событие не запускается при помещении настраиваемого элемента управления с привязкой к данным в элемент управления DataRepeater в формах Windows - PullRequest
0 голосов
/ 10 мая 2010

Пользовательские события в пользовательском элементе управления с привязкой к данным не запускаются в элементе управления DataRepeater. При отладке я обнаружил, что элемент управления DataRepeater воссоздает элемент управления с помощью Activator.CreateInstance и копирует свойства и события. В моем случае копирование событий не копирует пользовательские события, которые я подключил.

Например

открытый класс MyClass: Control { публичное событие EventHandler MyEvent;

защищенная виртуальная пустота OnMyEvent () { if (this.MyEvent! = null) { this.MyEvent (это, EventArgs.Empty); } }

private int selectedIndex = -1; public int SelectedIndex { получить { вернуть this.selectedIndex; } задавать { if (this.selectedIndex! = значение) { this.selectedIndex = значение; this.OnMyEvent (); } } } // // DataBinding работает здесь //

}

публичный Form1 () { InitialiseComponent ();

ArrayList list = new ArrayList (); list.Add ( "один");

this.dataRepeater1.DataSource = list; // один повторитель

MyClass test = new Myclass (); test.DataSource = GetDataTable ();

this.dataRepeater1.ItemTemplate.Controls.Add (тест);

test.MyEvent + = новый EventHandler (test_MyEvent);

}

// Это событие должно сработать, когда выбранный индекс Datatable изменяется, и запускается, когда помещается непосредственно в форму, и не срабатывает, когда помещается в элемент управления DataRepeater ///////////////// ////// private void test_MyEvent (отправитель объекта, EventArgss e) { // Это событие не состоялось /////////////////////// }

private DataTable GetDataTable () { ..// Создать таблицу данных и вернуть }

Любая помощь приветствуется.

Спасибо

1 Ответ

0 голосов
/ 10 мая 2010

Пожалуйста, обратитесь к форумам ниже. Это будет полезно для вас.

http://social.msdn.microsoft.com/Forums/en-US/vbpowerpacks/thread/b8b2bf93-46d5-406b-8947-c7b9ba02a771

С уважением, Лингарай С.

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