【发布时间】:2011-05-19 11:24:33
【问题描述】:
第一次发帖。所以首先,感谢多年来我从场边学到的所有帮助。我只是有一个在其他地方找不到的相当具体的代码设计问题。
我有一系列与特定 FrameworkElements 相关的故事板(除其他外),需要在代码中生成,我觉得它要么有点凌乱,而且可能有点慢(以为我没有t 测试)来存储具有 FrameworkElement - Storyboard 关系的字典,以便即时查找。
private static Dictionary<FrameworkElement, Storyboard> storyboardMapping;
private void FrameworkElement_SizeChanged(object sender, SizeChangedEventArgs e)
{
FrameworkElement fe = sender as FrameworkElement;
Storyboard sb = null;
if(storyboardMapping.TryGetValue(fe, out sb))
{
sb.Begin();
}
// etc
}
刚刚考虑过使用(私有)附加依赖属性,是否有人对一个是否比另一个更快/更清洁有意见?我看到使用字典的另一个缺点是它们也不能很好地与 WeakReferences 一起使用。我不是 C# 大师,我不完全理解这是否会导致垃圾收集问题。
另外,我不确定这本词典能有多大。可能多达 400 个对象甚至更多?
【问题讨论】:
标签: c# silverlight dependency-properties