Я использую базовые инструкции ( здесь ) для создания свойства, управляемого пользовательской панелью инструментов.
Все хорошо, за исключением той части, где для доступа к свойству 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];
}
Это означает, что я должен соединить каждую часть инструмента с определенной частью. Есть ли способ лучше?
Я не могу создать интерфейс, так как нет способа указать свойство в одном.
Я неумело пытался передать событие / обработчик событий во время создания инструментальной части, но это не привело к обновлению свойства веб-части при вызове.
Я мог бы создать базовый класс для всех веб-частей, у которых есть общедоступное свойство "Текст", но это плохо.
Я мог бы также впасть в отчаяние и взломать ссылку this.ParentToolPane.SelectedWebPart с Reflection и вызвать любые свойства с именем «Текст» таким образом.
В любом случае, я смотрю вниз по стволу небольшого раздувания, только чтобы узнать, что каждый вариант тупик.
Кто-нибудь делал это и может порекомендовать правильный метод создания многоразовой инструментальной части?