Я использую основные инструкции (здесь) для создания свойства, управляемого настраиваемым ToolPart.
Все хорошо, за исключением той части, где для доступа к свойству webpart в методе ApplyChanges я должен вернуть this.ParentToolPane.SelectedWebPart к конкретному классу SimpleWebPart.
public override void ApplyChanges()
{
SimpleWebPart wp1 = (SimpleWebPart)this.ParentToolPane.SelectedWebPart;
// Send the custom text to the Web Part.
wp1.Text = Page.Request.Form[inputname];
}
Это означает, что я должен связать каждую часть инструментов с определенной веб-частью. Есть ли способ лучше? Я не могу создать интерфейс, так как в нем невозможно указать свойство.
Я неудачно попытался передать событие / обработчик событий во время создания инструментальной части, но это не привело к обновлению свойства webpart при вызове.
Я мог бы создать базовый класс для всех веб-частей, у которых есть общедоступное свойство «Текст», но это ненадежно.
Я также мог впасть в отчаяние и взломать ссылку this.ParentToolPane.SelectedWebPart с помощью Reflection и таким образом вызвать любые свойства с именем «Text».
В любом случае, я смотрю на бочку изрядной долги, только чтобы понять, что каждый вариант - это тупик.
Кто-нибудь сделал это и может порекомендовать правильный метод создания многоразового инструмента?