protected override void OnPropertyChanged(string propertyName = null) { base.OnPropertyChanged(propertyName); if (propertyName == ItemTemplateProperty.PropertyName) { RenderChildren(); } if (propertyName == ItemsProperty.PropertyName) { _space = new HexSpace <T>(Items); if (Items is INotifyCollectionChanged observableCollection) { observableCollection.CollectionChanged -= ItemsChanged; observableCollection.CollectionChanged += ItemsChanged; } RenderChildren(); } }