LogViewer.MainWindow.OnListItemSelected C# (CSharp) Method

OnListItemSelected() private method

private OnListItemSelected ( object sender, System.Windows.Controls.SelectionChangedEventArgs e ) : void
sender object
e System.Windows.Controls.SelectionChangedEventArgs
return void
        private void OnListItemSelected(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems != null && e.AddedItems.Count > 0)
            {
                LogItemSchema item = (LogItemSchema)e.AddedItems[0];
                if (sender == CategoryList && item.ChildItems != null)
                {
                    ListViewItem listItem = CategoryList.ItemContainerGenerator.ContainerFromItem(item) as ListViewItem;
                    if (listItem != null)
                    {
                        // make sure expander is toggled.
                        Expander expander = listItem.FindDescendantsOfType<Expander>().FirstOrDefault();
                        expander.IsExpanded = true;
                    }
                }
                else if (item.ChildItems == null || item.ChildItems.Count == 0)
                {
                    if (item.Parent == null)
                    {
                        GraphItem(item);
                    }
                }
            }

            if (e.RemovedItems != null && e.RemovedItems.Count > 0)
            {
                LogItemSchema item = (LogItemSchema)e.RemovedItems[0];
                if (sender == CategoryList && item.ChildItems != null)
                {
                    ListViewItem listItem = CategoryList.ItemContainerGenerator.ContainerFromItem(item) as ListViewItem;
                    if (listItem != null)
                    {
                        Expander expander = listItem.FindDescendantsOfType<Expander>().FirstOrDefault();
                        expander.IsExpanded = false;
                    }
                }

            }
        }