protected AstTransformationNode(IFrameworkItem parentAstNode) : base(parentAstNode) { InitializeAstNode(); DefinedColumns = new VulcanCollection<AstTransformationColumnNode>(); StaticOutputPaths = new VulcanCollection<AstDataflowOutputPathNode>(); }
public override VulcanCollection<IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection<IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); return definedAstNodes; }
public AstAttributeRelationshipNode(IFrameworkItem parentAstNode) : base(parentAstNode) { _attributes = new VulcanCollection<AstNamedNode>(); InitializeAstNode(); SingletonPropertyChanged += AstAttributeRelationshipNode_SingletonPropertyChanged; }
public AstTableNode(IFrameworkItem parentAstNode) : base(parentAstNode) { _dataItems = new VulcanCollection<AstNamedNode>(); EmitVersionNumber = true; InitializeAstNode(); CollectionPropertyChanged += AstTableNode_CollectionPropertyChanged; }
public AstTableIndexNode(IFrameworkItem parentAstNode) : base(parentAstNode) { _items = new VulcanCollection<AstNode>(); InitializeAstNode(); CollectionPropertyChanged += AstTableIndexNode_CollectionPropertyChanged; }
public AstRootNode(IFrameworkItem parentItem) : base(parentItem) { Items = new VulcanCollection<IFrameworkItem>(); SymbolTable = new SymbolTable(this); InitializeAstNode(); CollectionPropertyChanged += AstRootNode_CollectionPropertyChanged; }
public Tuple() { LeftHandSide = new VulcanCollection<Definition>(); RightHandSide = new VulcanCollection<Use>(); DefinedIdentifiers = new ObservableHashSet<Identifier>(); UsedIdentifiers = new ObservableHashSet<Identifier>(); ExternalDefinitions = new ObservableDictionary<Identifier, ObservableHashSet<Definition>>(); LastIdentifierDefinition = new ObservableDictionary<Identifier, Definition>(); }
public override VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); return(definedAstNodes); }
public MappedBinding( object transformName, object parentTransformName, object parentOutputName, object targetInputName, VulcanCollection<AstDataflowColumnMappingNode> mappingList) : base(transformName, parentTransformName, parentOutputName, targetInputName) { Mappings = mappingList; }
public AstTableNode() { this._columns = new VulcanCollection <AstTableColumnBaseNode>(); this._keys = new VulcanCollection <AstTableKeyBaseNode>(); this._foreignKeys = new VulcanCollection <AstTableForeignKeyNode>(); this._sources = new VulcanCollection <AstTableSourceBaseNode>(); this._lookups = new VulcanCollection <AstTableLookupBaseNode>(); this._indexes = new VulcanCollection <AstTableIndexNode>(); this._dataValidations = new VulcanCollection <AstTableDataValidationBaseNode>(); }
public AstAttributeNode(IFrameworkItem parentAstNode) : base(parentAstNode) { _columns = new VulcanCollection<AstAttributeColumnNode>(); InitializeAstNode(); SingletonPropertyChanged += AstAttributeNode_SingletonPropertyChanged; CollectionPropertyChanged += AstAttributeNode_CollectionPropertyChanged; }
public AstRootNode() { this._includedFiles = new VulcanCollection <AstIncludedFileNode>(); this._connections = new VulcanCollection <Connection.AstConnectionNode>(); this._tables = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableNode>(); this._dimensions = new VulcanCollection <Dimension.AstDimensionNode>(); this._dimensionInstances = new VulcanCollection <DimensionInstance.AstDimensionInstanceNode>(); this._facts = new VulcanCollection <VulcanEngine.IR.Ast.Fact.AstFactNode>(); this._packages = new VulcanCollection <VulcanEngine.IR.Ast.Task.AstPackageNode>(); this._storedProcs = new VulcanCollection <VulcanEngine.IR.Ast.Task.AstStoredProcNode>(); }
public AstRootNode() { this._includedFiles = new VulcanCollection<AstIncludedFileNode>(); this._connections = new VulcanCollection<Connection.AstConnectionNode>(); this._tables = new VulcanCollection<VulcanEngine.IR.Ast.Table.AstTableNode>(); this._dimensions = new VulcanCollection<Dimension.AstDimensionNode>(); this._dimensionInstances = new VulcanCollection<DimensionInstance.AstDimensionInstanceNode>(); this._facts = new VulcanCollection<VulcanEngine.IR.Ast.Fact.AstFactNode>(); this._packages = new VulcanCollection<VulcanEngine.IR.Ast.Task.AstPackageNode>(); this._storedProcs = new VulcanCollection<VulcanEngine.IR.Ast.Task.AstStoredProcNode>(); }
public virtual VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); foreach (var item in _annotations) { definedAstNodes.Add(item); } return(definedAstNodes); }
public XmlIR() { SchemaSet = new XmlSchemaSet(); SchemaSet.Add(null, XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("VulcanEngine.Content.xsd.vulcan2.xsd"))); Id = Guid.NewGuid(); IsValidated = false; BimlFiles = new VulcanCollection <BimlFile>(); BimlFiles.CollectionChanged += _bimlFiles_CollectionChanged; VulcanOnPropertyChanged("BimlFiles", null, BimlFiles); }
public override VulcanCollection<IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection<IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); if (_package != null) { definedAstNodes.Add(_package); } return definedAstNodes; }
private void InitializeAstNode() { AccessMode_BackingField = VulcanEngine.IR.Ast.Transformation.DestinationAccessModeFacet.Table; TableLock_BackingField = true; CheckConstraints_BackingField = true; KeepIdentity_BackingField = false; KeepNulls_BackingField = false; _mappings = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstDataflowColumnMappingNode>(); _mappings.CollectionChanged += _mappings_CollectionChanged; DisableScd_BackingField = false; }
private void InitializeAstNode() { _inputs = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnDeclarationNode>(); _inputs.CollectionChanged += _inputs_CollectionChanged; _outputs = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnDeclarationNode>(); _outputs.CollectionChanged += _outputs_CollectionChanged; _ignores = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstEtlFragmentPathColumnDeclarationNode>(); _ignores.CollectionChanged += _ignores_CollectionChanged; _transformations = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstTransformationNode>(); _transformations.CollectionChanged += _transformations_CollectionChanged; }
public override VulcanCollection<IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection<IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); foreach (var item in _columns) { definedAstNodes.Add(item); } return definedAstNodes; }
public XmlIR() { SchemaSet = new XmlSchemaSet(); SchemaSet.Add(null, XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("VulcanEngine.Content.xsd.vulcan2.xsd"))); Id = Guid.NewGuid(); IsValidated = false; BimlFiles = new VulcanCollection<BimlFile>(); BimlFiles.CollectionChanged += _bimlFiles_CollectionChanged; VulcanOnPropertyChanged("BimlFiles", null, BimlFiles); }
public override VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); foreach (var item in _inputPaths) { definedAstNodes.Add(item); } return(definedAstNodes); }
public override VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); if (_package != null) { definedAstNodes.Add(_package); } return(definedAstNodes); }
public override VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); foreach (var item in _connections) { definedAstNodes.Add(item); } foreach (var item in _tables) { definedAstNodes.Add(item); } foreach (var item in _dimensions) { definedAstNodes.Add(item); } foreach (var item in _facts) { definedAstNodes.Add(item); } foreach (var item in _packages) { definedAstNodes.Add(item); } foreach (var item in _schemas) { definedAstNodes.Add(item); } foreach (var item in _principals) { definedAstNodes.Add(item); } foreach (var item in _persistentVariables) { definedAstNodes.Add(item); } foreach (var item in _templates) { definedAstNodes.Add(item); } return(definedAstNodes); }
private void InitializeAstNode() { AttributeUsage_BackingField = VulcanEngine.IR.Ast.Cube.SsasAttributeUsage.Regular; OrderBy_BackingField = VulcanEngine.IR.Ast.Cube.SsasOrderBy.Key; MemberNamesUnique_BackingField = false; EstimatedCount_BackingField = 0; IsAggregatable_BackingField = true; AttributeHierarchyEnabled_BackingField = true; AttributeHierarchyOrdered_BackingField = true; AttributeHierarchyOptimizedState_BackingField = VulcanEngine.IR.Ast.Cube.SsasOptimizedState.FullyOptimized; AttributeHierarchyVisible_BackingField = true; _keyColumns = new VulcanCollection <VulcanEngine.IR.Ast.Dimension.AstAttributeKeyColumnNode>(); _keyColumns.CollectionChanged += _keyColumns_CollectionChanged; }
private void InitializeAstNode() { PadIndex_BackingField = false; SortInTempDB_BackingField = false; DropExisting_BackingField = false; IgnoreDupKey_BackingField = false; Online_BackingField = false; Clustered_BackingField = false; Unique_BackingField = false; _columns = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableIndexColumnNode>(); _columns.CollectionChanged += _columns_CollectionChanged; _leafs = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableIndexLeafNode>(); _leafs.CollectionChanged += _leafs_CollectionChanged; }
private void InitializeAstNode() { _columns = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableColumnBaseNode>(); _columns.CollectionChanged += _columns_CollectionChanged; _keys = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableKeyBaseNode>(); _keys.CollectionChanged += _keys_CollectionChanged; _sources = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableSourceBaseNode>(); _sources.CollectionChanged += _sources_CollectionChanged; _lookups = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstEtlFragmentNode>(); _lookups.CollectionChanged += _lookups_CollectionChanged; _indexes = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableIndexNode>(); _indexes.CollectionChanged += _indexes_CollectionChanged; LateArriving_BackingField = false; CompressionType_BackingField = VulcanEngine.IR.Ast.Table.TableCompressionType.None; }
protected static void VulcanCompositeCollectionChanged <T>(VulcanCollection <T> compositeCollection, NotifyCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Add) { foreach (object item in e.NewItems) { compositeCollection.Add((T)item); } } else if (e.Action == NotifyCollectionChangedAction.Remove) { foreach (object item in e.OldItems) { compositeCollection.Remove((T)item); } } }
public override VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); if (_precedenceConstraints != null) { definedAstNodes.Add(_precedenceConstraints); } foreach (var item in _events) { definedAstNodes.Add(item); } return(definedAstNodes); }
public GraphNode(Graph <T> graph, T item) { Graph = graph; Item = item; IncomingEdges = new VulcanCollection <GraphEdge <T> >(); OutgoingEdges = new VulcanCollection <GraphEdge <T> >(); _dominates = new ObservableHashSet <GraphNode <T> >() { this }; _dominatedBy = new ObservableHashSet <GraphNode <T> >() { this }; _immediatelyDominates = new ObservableHashSet <GraphNode <T> >(); _dominanceFrontier = new ObservableHashSet <GraphNode <T> >(); _dominanceFrontierOf = new ObservableHashSet <GraphNode <T> >(); }
public override VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); if (_query != null) { definedAstNodes.Add(_query); } foreach (var item in _results) { definedAstNodes.Add(item); } return(definedAstNodes); }
public override VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); foreach (var item in _columns) { definedAstNodes.Add(item); } foreach (var item in _keys) { definedAstNodes.Add(item); } foreach (var item in _sources) { definedAstNodes.Add(item); } foreach (var item in _lookups) { definedAstNodes.Add(item); } foreach (var item in _indexes) { definedAstNodes.Add(item); } if (_customExtensions != null) { definedAstNodes.Add(_customExtensions); } return(definedAstNodes); }
public override VulcanCollection <IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection <IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); foreach (var item in _attributes) { definedAstNodes.Add(item); } foreach (var item in _relationships) { definedAstNodes.Add(item); } foreach (var item in _attributeHierarchies) { definedAstNodes.Add(item); } return(definedAstNodes); }
private void InitializeAstNode() { SymbolTable = new SymbolTable(this); _connections = new VulcanCollection <VulcanEngine.IR.Ast.Connection.AstConnectionNode>(); _connections.CollectionChanged += _connections_CollectionChanged; _tables = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableBaseNode>(); _tables.CollectionChanged += _tables_CollectionChanged; _dimensions = new VulcanCollection <VulcanEngine.IR.Ast.Dimension.AstDimensionNode>(); _dimensions.CollectionChanged += _dimensions_CollectionChanged; _facts = new VulcanCollection <VulcanEngine.IR.Ast.Fact.AstFactNode>(); _facts.CollectionChanged += _facts_CollectionChanged; _packages = new VulcanCollection <VulcanEngine.IR.Ast.Task.AstPackageBaseNode>(); _packages.CollectionChanged += _packages_CollectionChanged; _schemas = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstSchemaNode>(); _schemas.CollectionChanged += _schemas_CollectionChanged; _principals = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstPrincipalNode>(); _principals.CollectionChanged += _principals_CollectionChanged; _persistentVariables = new VulcanCollection <VulcanEngine.IR.Ast.PersistentVariables.AstPersistentVariableNode>(); _persistentVariables.CollectionChanged += _persistentVariables_CollectionChanged; _templates = new VulcanCollection <VulcanEngine.IR.Ast.AstTemplateNode>(); _templates.CollectionChanged += _templates_CollectionChanged; }
private static SortComparisonOptions ProcessSortType(VulcanCollection <SortComparisonFlag> sortFlags) { SortComparisonOptions sortType = SortComparisonOptions.None; foreach (SortComparisonFlag sortFlag in sortFlags) { switch (sortFlag) { case SortComparisonFlag.IgnoreCase: sortType |= SortComparisonOptions.IgnoreCase; break; case SortComparisonFlag.IgnoreCharacterWidth: sortType |= SortComparisonOptions.IgnoreCharacterWidth; break; case SortComparisonFlag.IgnoreKanaType: sortType |= SortComparisonOptions.IgnoreKanaType; break; case SortComparisonFlag.IgnoreNonspacingCharacters: sortType |= SortComparisonOptions.IgnoreNonspacingCharacters; break; case SortComparisonFlag.IgnoreSymbols: sortType |= SortComparisonOptions.IgnoreSymbols; break; case SortComparisonFlag.SortPunctuationAsSymbols: sortType |= SortComparisonOptions.SortPunctuationAsSymbols; break; default: throw new NotImplementedException(String.Format(CultureInfo.InvariantCulture, Properties.Resources.ErrorEnumerationTypeNotSupported, sortFlag)); } } return(sortType); }
private void InitializeAstNode() { _rows = new VulcanCollection<VulcanEngine.IR.Ast.Table.AstStaticSourceRowNode>(); _rows.CollectionChanged += _rows_CollectionChanged; EmitMergePackage_BackingField = true; }
public AstSortNode() { this._inputColumns = new VulcanCollection <AstSortInputColumnNode>(); }
public AstSortInputColumnNode() { this._comparisonFlags = new VulcanCollection <SortComparisonFlag>(); }
private void InitializeAstNode() { _arguments = new VulcanCollection<VulcanEngine.IR.Ast.AstTemplateArgumentMappingNode>(); _arguments.CollectionChanged += _arguments_CollectionChanged; }
private void InitializeAstNode() { _attributes = new VulcanCollection<VulcanEngine.IR.Ast.Dimension.AstAttributeNode>(); _attributes.CollectionChanged += _attributes_CollectionChanged; _relationships = new VulcanCollection<VulcanEngine.IR.Ast.Dimension.AstAttributeRelationshipNode>(); _relationships.CollectionChanged += _relationships_CollectionChanged; _attributeHierarchies = new VulcanCollection<VulcanEngine.IR.Ast.Dimension.AstDimensionHierarchyNode>(); _attributeHierarchies.CollectionChanged += _attributeHierarchies_CollectionChanged; }
public AstTableForeignKeyNode() { _columns = new VulcanCollection<AstTableForeignKeyColumnNode>(); }
private void InitializeAstNode() { _columns = new VulcanCollection<VulcanEngine.IR.Ast.Table.AstTableColumnBaseNode>(); _columns.CollectionChanged += _columns_CollectionChanged; _keys = new VulcanCollection<VulcanEngine.IR.Ast.Table.AstTableKeyBaseNode>(); _keys.CollectionChanged += _keys_CollectionChanged; _sources = new VulcanCollection<VulcanEngine.IR.Ast.Table.AstTableSourceBaseNode>(); _sources.CollectionChanged += _sources_CollectionChanged; _lookups = new VulcanCollection<VulcanEngine.IR.Ast.Transformation.AstEtlFragmentNode>(); _lookups.CollectionChanged += _lookups_CollectionChanged; _indexes = new VulcanCollection<VulcanEngine.IR.Ast.Table.AstTableIndexNode>(); _indexes.CollectionChanged += _indexes_CollectionChanged; LateArriving_BackingField = false; CompressionType_BackingField = VulcanEngine.IR.Ast.Table.TableCompressionType.None; }
public override VulcanCollection<IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection<IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); if (_precedenceConstraints != null) { definedAstNodes.Add(_precedenceConstraints); } foreach (var item in _events) { definedAstNodes.Add(item); } return definedAstNodes; }
private void InitializeAstNode() { _events = new VulcanCollection<VulcanEngine.IR.Ast.Task.AstTaskEventHandlerNode>(); _events.CollectionChanged += _events_CollectionChanged; DelayValidation_BackingField = false; IsolationLevel_BackingField = VulcanEngine.IR.Ast.Task.IsolationLevel.Serializable; }
public AstQuerySourceNode() { this._parameters = new VulcanCollection <AstQuerySourceParameterNode>(); this._queryNode = new AstETLQueryNode(); }
private void InitializeAstNode() { _columns = new VulcanCollection<VulcanEngine.IR.Ast.Table.AstMappedTableColumnReferenceNode>(); _columns.CollectionChanged += _columns_CollectionChanged; EnforceForeignKeyConstraint_BackingField = true; }
private void InitializeAstNode() { LogicalType_BackingField = VulcanEngine.IR.Ast.Task.LogicalOperationType.And; _inputs = new VulcanCollection <VulcanEngine.IR.Ast.Task.AstTaskflowInputPathNode>(); _inputs.CollectionChanged += _inputs_CollectionChanged; }
public AstDimensionLookup() { this._transformations = new VulcanCollection<AstTransformationNode>(); }
private void InitializeAstNode() { _parameters = new VulcanCollection<VulcanEngine.IR.Ast.Task.AstExecuteSqlParameterMappingTypeNode>(); _parameters.CollectionChanged += _parameters_CollectionChanged; }
private void InitializeAstNode() { AutoPassthrough_BackingField = false; EliminateDuplicates_BackingField = false; _inputColumns = new VulcanCollection<VulcanEngine.IR.Ast.Transformation.AstSortColumnNode>(); _inputColumns.CollectionChanged += _inputColumns_CollectionChanged; }
private void InitializeAstNode() { _columnValues = new VulcanCollection<VulcanEngine.IR.Ast.Table.AstStaticSourceColumnValueNode>(); _columnValues.CollectionChanged += _columnValues_CollectionChanged; }
public override VulcanCollection<IFrameworkItem> DefinedAstNodes() { var definedAstNodes = new VulcanCollection<IFrameworkItem>(); definedAstNodes.AddRange(base.DefinedAstNodes()); foreach (var item in _columns) { definedAstNodes.Add(item); } foreach (var item in _keys) { definedAstNodes.Add(item); } foreach (var item in _sources) { definedAstNodes.Add(item); } foreach (var item in _lookups) { definedAstNodes.Add(item); } foreach (var item in _indexes) { definedAstNodes.Add(item); } if (_customExtensions != null) { definedAstNodes.Add(_customExtensions); } return definedAstNodes; }
public AstStoredProcNode() { this._columns = new VulcanCollection<AstStoredProcColumnNode>(); }
public AstTableKeyBaseNode() { this._columns = new VulcanCollection<AstTableKeyColumnNode>(); }
private void InitializeAstNode() { _inputPaths = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstDataflowMappedInputPathNode>(); _inputPaths.CollectionChanged += _inputPaths_CollectionChanged; }
public AstTableIndexNode() { this._columns = new VulcanCollection <AstTableIndexColumnNode>(); this._leafs = new VulcanCollection <AstTableColumnBaseNode>(); }
private void InitializeAstNode() { _tables = new VulcanCollection <VulcanEngine.IR.Ast.Table.AstTableBaseNode>(); _tables.CollectionChanged += _tables_CollectionChanged; ExecuteDuringDesignTime_BackingField = true; }
private void InitializeAstNode() { _columns = new VulcanCollection<VulcanEngine.IR.Ast.Transformation.AstIsNullPatcherColumnNode>(); _columns.CollectionChanged += _columns_CollectionChanged; }
private void InitializeAstNode() { ExecuteDuringDesignTime_BackingField = false; _columns = new VulcanCollection<VulcanEngine.IR.Ast.Task.AstStoredProcColumnNode>(); _columns.CollectionChanged += _columns_CollectionChanged; _permissions = new VulcanCollection<VulcanEngine.IR.Ast.AstPermissionNode>(); _permissions.CollectionChanged += _permissions_CollectionChanged; }
private void InitializeAstNode() { _transformations = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstTransformationNode>(); _transformations.CollectionChanged += _transformations_CollectionChanged; }
private void InitializeAstNode() { _columns = new VulcanCollection <VulcanEngine.IR.Ast.Transformation.AstDerivedColumnNode>(); _columns.CollectionChanged += _columns_CollectionChanged; }