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 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)); }
private void ClearAllLiveShapingPropertiesOf(LiveShapingCategory category) { List <LiveShapingProperty> lspsToRemove = new List <LiveShapingProperty>(); foreach (var adpPair in ActiveDependencyProperties.Where(pair => pair.Key.Category == category)) { var dependencyProperty = adpPair.Value; LiveShapingItems.Values.ForEach(lsi => lsi.RemoveBinding(dependencyProperty)); lspsToRemove.Add(adpPair.Key); } lspsToRemove.ForEach(lsp => ActiveDependencyProperties.Remove(lsp)); }