2017-06-15 71 views
0

这里是场景: 假设我有一个TextBlock,并且我将一个Loaded事件放在它上面,在这种情况下,我指示它将Foreground设为橙色。即使不直接调用,事件是否会触发/评估?

因此,它加载,触发Loaded事件,去我的代码,并执行前台指令。

如果我有1000个ListBox项上的这个TextBlock,它会触发这1000次,对吧?

但是,如果我根本不调用“加载”(原样保留文本块),它是否仍然在此ListBox场景中触发1,000次背景中的加载事件?

+0

如果没有订阅者,事件并不会被“解雇”。 – Evk

回答

1

如果我有1000个ListBox项目上的这个TextBlock,它会触发这1000次,对吧?

是的,它会在每个TextBlock被加载时触发。但请注意,如果ListBox使用UI虚拟化(默认情况下它不是),那么并非所有1,000 TextBlocks都是预装的。

但是,如果我根本不调用“Loaded”(原样保留文本块),它是否仍然在此ListBox场景中触发1,000次背景中的Loaded事件?

Loaded事件本身仍可能针对被加载到可视树提供的还有其他用户每TextBlock被解雇,但因为你没有处理事件,你不会真正注意到。