我正在使用基本说明(此处)来创建由自定义 ToolPart 驱动的属性。
一切都很好,除了部分,为了访问 ApplyChanges 方法中的 webpart 属性,我必须将“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];
}
这样做意味着我必须将每个工具部件与特定的 Web 部件配对。有没有更好的办法?我无法创建接口,因为无法在其中指定属性。
我在创建工具部件期间不恰当地尝试传递事件/事件处理程序,但是在调用时并没有更新 webpart 属性。
我可以为所有具有公共“文本”属性的 web 部件创建一个基类,但这很丑陋。
我也可能会绝望并使用反射打开 this.ParentToolPane.SelectedWebPart 引用,并以这种方式调用任何名为“Text”的属性。
无论哪种方式,我都在盯着一个公平的桶,只是发现每个选项都是死胡同。
有没有人这样做并且可以推荐创建可重用工具部件的正确方法?