public static void Propagate(IMaterialContainer parent, object elements)
        {
            if (!(elements is IList casted))
            {
                return;
            }
            foreach (var expander in casted.OfType <ExpanderButton>())
            {
                expander.SetParent(parent);
                Propagate(expander, expander.Header as IMaterialItem);

                expander.Close();
                Propagate(expander, expander.Children);
            }

            casted.OfType <IMaterialItem>().ToList().ForEach(x => Propagate(parent, x));
        }
 private static void Propagate(IMaterialContainer parent, IMaterialItem item)
 {
     item?.SetParent(parent);
 }