בעיית performance חמורה כשניסיתי לעשות custom tree view + data binding להרבה נתונים.
בסופו של דבר התברר לי שה virtualization של ה TreeView נדפק כאשר מורידים trigger שמגיע ב default template של TreeViewItem
מה שגרם לייצור של כל ה TreeViewItems בפעם הראשונה בבת אחת.
התיקון הוא ב style של TreeViewItem (או מה שיורש ממנו) שמתחיל ב:
<Style TargetType="{x:Type TreeViewItem}">
באזור ה triggers
<ControlTemplate.Triggers>
חייבים להשאיר את השורות הבאות (או multi trigger וכו' שדואג שזאת תהיה התוצאה):
<Trigger Property="IsExpanded" Value="false">
<Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed"/>
</Trigger>
במצב הזה העץ לא ייצור את הילדים של הענפים בעץ עד שיפתחו אותם ע"י Expand