private static void OnIsExpandedChanged(object sender, DependencyPropertyChangedEventArgs e) { LoopingSelector picker = (LoopingSelector)sender; picker.UpdateItemState(); if (!picker.IsExpanded) { picker.SelectAndSnapToClosest(); } if (picker._state == State.Normal || picker._state == State.Expanded) { picker._state = picker.IsExpanded ? State.Expanded : State.Normal; } var listeners = picker.IsExpandedChanged; if (listeners != null) { listeners(picker, e); } }