I think I found a bug with the TreeListBox DataFilter feature. I used to have multiple data filters for the TreeListBox in my application but now I only have one (a StringFilter), and this filter has the IncludedFilterResult set to IncludedWithDescendants. However, I was never having the behavior that I wanted (my search need to display the child nodes of a found node). It behaved like the Included filter where the children of a found node would not be displayed.
After a lot of head scratching, I found out that that my single DataFilter was still wrapped inside a DataFilterGroup. When I removed the DataFilterGroup and set it right under TreeListBox.DataFilter, it works as expected.
I would have thought that
<grids:TreeListBox.DataFilter> <shared:DataFilterGroup> <common:TreeNodeModelStringFilter x:Name="stringFilter" Value="Canada" /> </shared:DataFilterGroup> </grids:TreeListBox.DataFilter>
would have the same effect as
<grids:TreeListBox.DataFilter> <common:TreeNodeModelStringFilter x:Name="stringFilter" Value="Canada" /> </grids:TreeListBox.DataFilter>
You can reproduce this in your TreeListBoxFiltering demo, and setting IncludedFilterResult to IncludedWithDescendants. The node "Canada" should have the Expand arrow on the left but it doesn't. It behaves as if it's in Included mode.
This is on 2019.1.687, I don't have the license for the latest version of WPF Studio so I cannot say if the issue is still there.