C# 附加的依赖项属性与字典-Silverlight

C# 附加的依赖项属性与字典-Silverlight,c#,silverlight,dependency-properties,C#,Silverlight,Dependency Properties,第一个帖子。首先,感谢这些年来我从场边学到的所有帮助。我只是有一个在别处找不到的相当具体的代码设计问题 我有一系列与特定框架元素相关的故事板(除其他外),需要在代码中生成,我觉得用框架元素-故事板关系存储字典,以便动态查找,要么有点混乱,要么可能有点慢(我还没有测试) private static Dictionary<FrameworkElement, Storyboard> storyboardMapping; private void FrameworkEle

第一个帖子。首先,感谢这些年来我从场边学到的所有帮助。我只是有一个在别处找不到的相当具体的代码设计问题

我有一系列与特定框架元素相关的故事板(除其他外),需要在代码中生成,我觉得用框架元素-故事板关系存储字典,以便动态查找,要么有点混乱,要么可能有点慢(我还没有测试)

    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
    }
私有静态字典故事板映射;
私有void FrameworkElement_SizeChanged(对象发送方,SizeChangedEventArgs e)
{
FrameworkElement fe=发送方作为FrameworkElement;
情节提要sb=null;
if(storyboardMapping.TryGetValue(fe,out sb))
{
某人开始做某事;
}
//等
}
刚刚考虑过使用(私有)附加的依赖属性,有人对其中一个是否比另一个更快/更干净有意见吗?我看到使用字典的另一个缺点是,它们也不能很好地处理weakreference。作为一名C#Guru,我不完全理解这是否会给垃圾收集带来问题


而且,我也不确定这本字典能有多大。可能多达400个对象,甚至更多?

我不会担心字典的内存占用。它们只是参考资料


但是,长寿命对象(静态)包含对短命对象(UI元素)的引用存在危险,因为这样可以防止它们被垃圾收集。

我现在使用UIElements的
.Resources
属性,这是存储这些对象的更合适的位置


这个问题以前已经得到了回答,但是答案似乎已经消失了。因此,除非原始答案再次出现,否则我会将此答案标记为正确答案。

感谢您的回答,但是此问题已经得到了回答。。。我不知道发生了什么事。