When binding and setting Visibility to Collapsed the item's empty space still remains. I have tested with many examples. Simple one is here
Now, when you click the button you can see the 4th item got invisible but still taking the space. However if you remove ListBox.ItemsPanel tagand then check again it will be collapsed as it should.
I have checked it with few examples and all are same, is there anyway to do that except removing the item from collection ?