void LeftNavigationPanel_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { List <IWidget> widgets = GetWidgets == null || e.NewValue == null ? new List <IWidget>() : GetWidgets.GetInvocationListTyped().Select(d => d((ModifiableEntity)DataContext, MainControl)).NotNull().ToList(); this.Visibility = widgets.Count == 0 ? Visibility.Collapsed : Visibility.Visible; stackPanel.Children.Clear(); foreach (var item in widgets.OrderBy(a => Common.GetOrder((DependencyObject)a))) { stackPanel.Children.Add((UIElement)item); item.ForceShow += () => expander.IsExpanded = true; } }