第一篇文章。所以首先,感谢多年来我从观望中所获得的所有帮助。我只是有一个非常具体的代码设计问题,我在其他地方找不到。
我有一系列与特定FrameworkElement相关的情节提要,需要在代码中生成,并且我觉得它有些混乱,可能有点慢(这是我尚未测试的)存储带有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个对象?
最佳答案
我不用担心字典的内存占用。它们只是参考。
但是,存在长寿命的对象(静态)包含对短寿命的对象(UI元素)的引用的危险,因为这会使它们无法被垃圾回收。
关于c# - 附加依赖项属性与字典-Silverlight,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6057874/