反思听可能的事件 - silverlight / wp7

时间:2012-05-10 06:33:10

标签: silverlight windows-phone-7 reflection

我不确定如何开始这个,我肯定可以使用一些直接建议(即使不可能)。

我在页面上托管了3个控件。其中两个有一个Storyboard,在加载控件时运行。其中一个没有。但是因为我有更多的控件后来添加,其中一些将具有Storyboard而其中一些将不会(它们是动态的,所以没有办法提前知道因为这些是....好吧,这是一个很长的故事)。

所以我想要做的是从主机页面,看看控件是否有一个“Storyboard sb”字段,如果是这样,请将它挂钩,以便在控件上完成时,主页执行某些操作

我看了很多System.Reflection,我觉得我在帮助文件的正确位置,但无法弄清楚我应该在哪里/如何看待a)看看控件是否有这个字段,b)挂钩它的“已完成”事件,如果是,c)然后删除处理程序。

有任何建议/指示吗?

2 个答案:

答案 0 :(得分:1)

使用Dependency属性(在本例中为Storyboard类型的Dependency属性)。

DP允许将任意值分配给对值无所了解的对象。它们也可以在Xaml中分配,也可以从代码中动态添加。它也比反射更快。

Handy Snippet在这里生成DP:Silverlight Dependency Property Snippet(在生成的代码中有一个小错误,错误的情况下,您需要更正代码段)

答案 1 :(得分:0)

另一种相对直接的方式可能是“滥用”控件的Tag属性,以指示他们是否应该使用故事板。虽然我不是这些场景的粉丝(至少可以说是这样),但它简单快速(而且很脏)),你可以远离反思。