private void AddCodeSymbolCodeOptionsItem(DrawableCodeSymbolCode drawableCode, PropertyType ctrlType) { var newOptionsItem = new CodeSymbolCodeOptionsItem(drawableCode.DisplayName, drawableCode); newOptionsItem.PropertyChangedEvent += this.PropertyChangedEvent; this.ctrlCollection.Add(newOptionsItem); this.drawingManager.RegisterCodeSymbolCode(drawableCode); this.settingsControls[ctrlType].Add(newOptionsItem); }
private void HandleCodeChange(IEnumerable <ICodeSymbolCode> codeSymbolCodes, PropertyType propertyType) { List <CodeSymbolCodeOptionsItem> optionsItemList; // create list, if not existing yet if (!this.settingsControls.TryGetValue(propertyType, out optionsItemList)) { optionsItemList = new List <CodeSymbolCodeOptionsItem>(); this.settingsControls[propertyType] = optionsItemList; } var newCount = codeSymbolCodes.Count(); // remove excessive trailing old items for (int i = optionsItemList.Count; i > newCount; i--) { RemoveControlTypeElement(propertyType, i - 1); } // update existing item for (int i = 0; i < optionsItemList.Count; i++) { var newDrawableCode = new DrawableCodeSymbolCode(codeSymbolCodes.ElementAt(i), this.drawingProperties[propertyType]); var optionsItem = optionsItemList[i]; this.drawingManager.UnregisterCodeSymbolCode(optionsItem.DrawableCodeSymbolCode); optionsItem.DrawableCodeSymbolCode = newDrawableCode; this.drawingManager.RegisterCodeSymbolCode(newDrawableCode); } // add new items for (int i = optionsItemList.Count; i < newCount; i++) { var drawableCode = new DrawableCodeSymbolCode(codeSymbolCodes.ElementAt(i), this.drawingProperties[propertyType]); this.AddCodeSymbolCodeOptionsItem(drawableCode, propertyType); } }
public void UnregisterCodeSymbolCode(DrawableCodeSymbolCode symbolCode) { this.drawableCodeSymbolCodes.Remove(symbolCode); }
public void RegisterCodeSymbolCode(DrawableCodeSymbolCode symbolCode) { this.drawableCodeSymbolCodes.Add(symbolCode); }