Are there Windows specific issues that prevent VisualStates from updating in CollectionView items?
Yes. On Windows, state changes may not apply if elements are not in the expected namescope or if system brushes override the template. Targeting the root or updating states in code-behind via SelectionChanged can help.
Do VisualStates only work when applied to the ItemTemplate root or can they target nested elements?
They can target nested elements if those elements have names, but VisualStates applied to the template root are the most reliable across platforms. Nested targeting requires correct namescopes and element naming.
Why does tapping an item not change its selected appearance inside a CollectionView?
Common causes include: Ensure SelectionMode is enabled, define the required visual states, and apply them to the template’s root element.
How can multiple items be added at once without causing visible stutter or frame drops?
Use a single bulk update (such as ObservableRangeCollection.AddRange) or replace the ItemsSource entirely. Enable RecycleElement, down-sample and cache images, move heavy work off the UI thread, and keep templates lightweight.
What is the safest way to add new messages while keeping the scroll position stable, especially when inserting at the top?
Capture the first visible item (or its index) and offset. Insert new messages using a batch update, then restore scroll position using ScrollTo(savedItem/index, ScrollToPosition.Start, animate: false). This preserves the viewport and avoids jumping.