1

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

我在一个页面上托管了 3 个控件。其中两个在Storyboard加载控件时运行。其中之一没有。但是由于我有更多的控件稍后添加,其中一些将具有,Storyboard而另一些则不会(它们是动态的,因此无法提前知道这些是......嗯,这很长故事)。

所以我想做的是从主机页面,看看一个控件是否有一个“Storyboard sb”字段,如果有,就挂钩它,这样当它在控件上完成时,主机页面会做一些事情。

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

有什么建议/方向吗?

4

2 回答 2

1

请改用依赖属性(在本例中为 Storyboard 类型的依赖属性)。

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

在此处生成 DP 的方便代码段:Silverlight 依赖属性代码段(生成的代码中有一个小错字,错误的情况,您需要更正代码段)

于 2012-05-18T08:02:41.887 回答
0

另一种相对直接的方法可能是“滥用”控件的Tag属性来指示它们是否应该使用情节提要。虽然我不是(至少可以说)这类场景的粉丝,但它足够简单和快速(而且很脏;)),你可以远离反思。

于 2012-05-10T06:58:20.500 回答