2015-02-13 2 views
1

У меня есть 2 проекта:Визуальное наследование для обработки событий RadGridViews возможно?

  • проекта А, который состоит из UserControl с именем BaseUC, который состоит из RadPanel и RadGridView (оба набор модификаторов для общественности)
  • Проект B, который состоит из UserControl, который наследуется от BaseUC (от самого класса). Проект A включен как ссылка DLL в проекте B

Сейчас ситуация так:

  • Оба элемента из BaseUC приведены в DerivedUC.
  • RadLabel я могу редактировать без проблем (свойства) в проекте B
  • Элемент GridView имеет свои свойства неактивных в проекте B
  • Если я дам GridView события, которые я реализую как виртуальные в проекте A и перезаписывать их в проекте BI сталкивается с проблемой, что я получаю исключение, как только я пытаюсь запустить события. То же самое, если я пытаюсь вручную добавлять события в GridView в проекте Б.

Так что мой вопрос двоякий там, но сводится к основному вопросу, если обработка событий возможно визуально inheritted RadGridViews:

  1. Как я могу заставить RadGridView обладать свойствами, доступными для редактирования в проекте B?
  2. Как я могу обрабатывать события там?

То есть, если эти две вещи возможны вообще.

+0

События управления в UserControl будут в основном предназначены для потребления * по * UserControl. Форма будет только видеть/иметь доступ к событиям, которые вы определяете, и запускать их в UserControl. Недостаточно подробностей, чтобы точно знать, но США, возможно, также не имеют доступа к событиям B.A. Примерами являются NumericUpDown или ComboBox, которые являются составными элементами управления, но NUD потребляет их события и запускает новые, связанные с NUD (UC в вашем случае). – Plutonix

ответ

0

Вы можете открыть дочерние элементы управления, содержащиеся в вашем UserControl, как общедоступное свойство, которое создает публичное свойство, которое возвращает дочерний элемент управления, а не только делает дочернюю переменную общедоступной. Это позволит дочернему элементу управления управлять обработчиками событий и устанавливать общедоступные свойства. Обратите внимание, что это нарушает один из правил ориентации объектов, а именно, инкапсуляцию .... но правила должны быть нарушены для определенных случаев, которые соответствуют требованиям :)

Смежные вопросы