private object InstantiateCollectionType (Type t)
{
if (!(typeof (IList).IsAssignableFrom (t) || typeof (IDictionary).IsAssignableFrom (t)))
return null;
XamlReflectionPropertySetter prop = null;
// CurrentElement hasn't been set yet, so we are getting our type's parent here.
XamlPropertyElement pe = CurrentElement as XamlPropertyElement;
XamlObjectElement oe = CurrentElement as XamlObjectElement;
if (pe != null)
prop = pe.Setter as XamlReflectionPropertySetter;
if (pe == null && oe != null)
prop = oe.FindContentProperty () as XamlReflectionPropertySetter;
if (prop == null)
return null;
return prop.GetValue ();
}