protected override void UpdateUICore(UserControl styleItemUI) { base.UpdateUICore(styleItemUI); var viewModel = styleItemUI.DataContext as ValueStyleViewModel; if (viewModel != null && viewModel.ValueItems.Count != Children.Count) { List <ValueItemEntity> temps = viewModel.ValueItems.ToList(); viewModel.ValueItems.Clear(); foreach (var subItem in Children.OfType <StyleLayerListItem>()) { var valueItem = subItem.ConcreteObject as ValueItem; var item = new ValueItemEntity(); item.PropertyChanged += Item_PropertyChanged; item.ValueItem = valueItem; item.MatchedValue = valueItem.Value; item.Image = StyleHelper.GetImageFromStyle(valueItem.CustomStyles); ValueItemEntity temp = temps.FirstOrDefault(v => v.ValueItem == valueItem); if (temp != null) { item.Count = temp.Count; } viewModel.ValueItems.Add(item); } } }
private ValueItemEntity GetValueItemEntity(Image image, string matchedValue, ValueItem valueItem) { ValueItemEntity valueItemEntity = new ValueItemEntity(); valueItemEntity.Image = image; valueItemEntity.MatchedValue = matchedValue; valueItemEntity.ValueItem = valueItem; valueItemEntity.PropertyChanged += new PropertyChangedEventHandler(ValueItemEntity_PropertyChanged); return(valueItemEntity); }
private void InitValueItem <T>(StyleCategories styleProviderType, DistinctColumnValue columnValueGroup, string columnName) where T : Style { Collection <Style> styles = new Collection <Style>(); if (styleProviderType == StyleCategories.Composite) { Collection <StylePlugin> plugins = new Collection <StylePlugin>(); var areaPlugin = GisEditor.StyleManager.GetDefaultStylePlugin(StyleCategories.Area); if (areaPlugin != null) { plugins.Add(areaPlugin); } var linePlugin = GisEditor.StyleManager.GetDefaultStylePlugin(StyleCategories.Line); if (linePlugin != null) { plugins.Add(linePlugin); } var pointPlugin = GisEditor.StyleManager.GetDefaultStylePlugin(StyleCategories.Point); if (pointPlugin != null) { plugins.Add(pointPlugin); } foreach (var item in plugins) { Style style = GetStyleByPlugin(item); if (style != null) { styles.Add(style); } } } else { var styleProvider = GisEditor.StyleManager.GetDefaultStylePlugin(styleProviderType); if (styleProvider != null) { Style style = GetStyleByPlugin(styleProvider); if (style != null) { styles.Add(style); } } } if (styles.Count > 0) { ValueItem valueItem = new ValueItem(); valueItem.Value = columnValueGroup.ColumnValue; styles.ForEach(s => valueItem.CustomStyles.Add(s)); ValueItemEntity valueItemEntity = ValueItems.FirstOrDefault(tmpItem => tmpItem.MatchedValue.Equals(columnValueGroup.ColumnValue, StringComparison.Ordinal)); if (valueItemEntity == null) { valueItem = new ValueItem(); valueItem.Value = columnValueGroup.ColumnValue; styles.ForEach(s => valueItem.CustomStyles.Add(s)); var image = StyleHelper.GetImageFromStyle(styles); var newValueItemEntity = GetValueItemEntity(image, columnValueGroup.ColumnValue, valueItem); newValueItemEntity.Count = columnValueGroup.ColumnValueCount; ValueItems.Add(newValueItemEntity); } else { //valueItemEntity.Update(valueItem); valueItemEntity.Count = columnValueGroup.ColumnValueCount; } } }