Your not actually updating your ObservableCollection, your just replacing it.
If you replace the reference you need to raise the propertychanged-event:
Private _Categories As ObservableCollection(Of CategoryEntry)
Public Property Categories As ObservableCollection(Of CategoryEntry)
Get
Return _Categories
End Get
Set(value As ObservableCollection(Of CategoryEntry))
_Categories = value
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArg("Categories"))
End Set
End Property
This is of course supposing that the class implements INotifyPropertyChanged