У меня есть пользовательский элемент управления, который наследуется от System.Web.UI.Control
, и некоторые его свойства могут быть декларативно установлены с помощью выражений привязки данных. например,
<foo:Foo runat="server" MyFoo="<%# this.GetFoo() %>" />
Теперь, когда я это сделаю, мне нужно позвонить .DataBind()
на элемент управления (или одного из его родителей), чтобы оценить эти выражения.
То, что я хотел бы сделать, это обнаружить , если любые свойства были установлены таким образом, и просто автоматически вызывать вызов пользовательского элемента управления this.DataBind()
после OnPreRender
или около того.
Итак, вопрос : как я могу определить, ожидают ли выполнения выражения привязки данных?
Я убежден, что в каком-то классе ControlBuilder
или DataBindContext
живет информация, необходимая для определения этого. Я охотился с Reflector и не могу его найти.
Я должен добавить, что я не хочу оплачивать накладные расходы на выполнение DataBind()
, если никакие прямые свойства не были назначены таким образом. Вот почему я хотел бы обнаружить заранее. Этот класс очень легкий, но я хотел бы иметь возможность декларативно устанавливать свойства без необходимости кода.