我希望能够为我的界面设置一个按钮,如果按下等,则使用不同的代理。
为了方便起见,能够从XML加载按钮会很棒。我已经设置了这样的设置:
<EclipseButton name="button1" texkey="thumbnail" istodraw="True">
<position>
<x>10</x>
<y>10</y>
</position>
<width>64</width>
<height>64</height>
</EclipseButton>
但我希望能够添加:
<IfPressed>
<![CDATA[
Console.WriteLine("The button is pressed");
]]>
</IfPressed>
然后我可以将cdata中的文本转换为lambda:
() => { Console.WriteLine("The button is pressed"); }
是否有可能使这成为可能?
答案 0 :(得分:1)
作为@Yahia回复的替代方案,您可以创建一个预定义操作列表(类似于ASP AJAX Control Toolkits对操作所做的操作)并允许标记指定顺序等,例如
<IfPressed>
<WriteToConsole Text="The button is pressed" />
</IfPressed>
然后将集合解析为待办事项列表,遍历每个添加的项目并执行它。
答案 1 :(得分:0)
虽然不容易,但可以参见http://msdn.microsoft.com/de-de/library/650ax5cx.aspx
您需要在运行时编译代码并使用反射来调用等。