1) Populate GridView with an aggregate observable collection. (Content of this aggregation is correct / what I want, confirmed at every step.)
2) Expand one or more of properly displayed group headers.
3) Collapse same group(s).
Items that I have manipulated* remain present in the list below both groups. (Somehow not being grouped under the only two possible groups. (The descriptor is not hard coded, and should create new groups at runtime if data was different.)
* These customized items are modified before the GridView gets them, and not while the grid view is active. Modification includes recreating the item received from another observable collection by intercepting the modification callback. However, both the complete destruction approach and replace approach result in the same issue. (In the aggregate collection.)
Could this issue be related to a poorly implemented Equals, GetHashCode, or CompareTo function? I am trying to use Telerik raw instead of doing over engineered complicated things, as attempts I've made in the past result in very bad performance.