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;
}
}
}
}