Столбец ITemplate и DataGrid в Codebehind
У меня есть ситуация, когда мне нужно работать с сеткой данных и динамически добавлять столбцы в PageInit, поскольку сетка имеет несколько условных запросов, которые она должна обработать. Я легко двигаюсь вместе с BoundColumns и ButtonColumns, это легко. Проблема заключается в создании TemplateColumn с помощью кода. Я нашел примеры создания собственного класса, который динамически добавляет элементы управления, создавая класс, использующий реализацию ITemplate. Это работает, однако, я борюсь с тем, как привязать элементы к данным.
В моей сетке я бы использовал <% = DataBinder.Eval (Container.DataItem, "MyValue")%> или аналогичный, но это не вариант здесь. Контейнер внутри ITemplate также не имеет свойства элемента данных, поэтому я не могу связываться там. У любого есть совет или ссылки, которые могут помочь, я просто не нахожу правильных вещей в Google.
1 ответ
Вы можете прикрепить обработчик события к событию DataBinding элементов управления, которые вы создаете в ITemplate.InstantiateIn, как в этой статье MSDN. Отправителем будет элемент управления, а свойством NamingContainer будет DataGridItem, который имеет ссылку на DataItem, который можно использовать для получения любых необходимых данных.