If you just want them to expand or collapse and that is all you are looking for and you have them in the ObservableCollection, then the onchanged event will only fire on the Add(), Clear(), and Remove() events, so try a templist to hold your itemsource
foreach(type item in Cat)
{
item.IsExpanded = true;
templist.add(item);
}
Cat.Clear();
foreach(type item in templist)
{
Cat.Add(item);
}
one of those funny issues with observable collections