private void RemoveLiveShapingProperty(string oldSortPropertyName, LiveShapingCategory category) { var liveShapingProperty = new LiveShapingProperty(oldSortPropertyName, category); var oldDp = ActiveDependencyProperties[liveShapingProperty]; LiveShapingItems.Values.ForEach(lsi => lsi.RemoveBinding(oldDp)); ActiveDependencyProperties.Remove(liveShapingProperty); }
private void RegisterBinding(LiveShapingItem <T> liveShapingItem, LiveShapingProperty lsp, DependencyProperty dp) { liveShapingItem.AddBinding(lsp.PropertyName, dp); if (lsp.Category == LiveShapingCategory.Sorting) { PropertyChangedEventManager.AddHandler(liveShapingItem.Item, OnItemSortPropertyChanged, lsp.PropertyName); } }
private void AddLiveShapingProperty(string newPropertyName, LiveShapingCategory category) { var newDp = DependencyPropertiesCache.GetOrAdd(GetDependencyPropertyNameFor(newPropertyName, category), name => DependencyProperty.Register(name, typeof(object), typeof(LiveShapingSortedValueList <>))); var lsp = new LiveShapingProperty(newPropertyName, category); ActiveDependencyProperties.Add(lsp, newDp); LiveShapingItems.Values.ForEach(lsi => RegisterBinding(lsi, lsp, newDp)); }