private void AddColumn(string key, IEnumerable <IColumnProcess> alltools) { if (dataView == null) { return; } var col = new DataGridTemplateColumn { Header = key, Width = CellWidth }; var dt = new DataTemplate(); col.CellTemplate = dt; var fef = new FrameworkElementFactory(typeof(MultiLineTextEditor)); var binding = new Binding(); binding.Path = new PropertyPath(($"[{key}]")); fef.SetBinding(ContentControl.ContentProperty, binding); fef.SetBinding(MultiLineTextEditor.TextProperty, binding); dt.VisualTree = fef; col.CellTemplate = dt; dataView.Columns.Add(col); var group = new SmartGroup { Name = key, Value = new ObservableCollection <IColumnProcess>(alltools.Where(d => d.Column == key)) }; group.PropertyChanged += (s, e) => { if (e.PropertyName == "Name") { var last = alltools.LastOrDefault() as IColumnDataTransformer; if (last != null && last.TypeName == "列名修改器" && last.NewColumn == key) { last.NewColumn = group.Name; } else { last = PluginProvider.GetObjectInstance("列名修改器") as IColumnDataTransformer; last.NewColumn = group.Name; last.Column = key; InsertModule(last); ETLMount++; OnPropertyChanged("ETLMount"); if (IsAutoRefresh) { RefreshSamples(); } } } }; SmartGroupCollection.Add(group ); }
private void InitUI() { var alltools = CurrentETLTools.Take(ETLMount).ToList(); if (generateFloatGrid) { var gridview = PluginProvider.GetObjectInstance <IDataViewer>("可编辑列表"); var r = gridview.SetCurrentView(Documents); if (ControlExtended.DockableManager == null) { return; } ControlExtended.DockableManager.AddDockAbleContent( FrmState.Custom, r, "样例数据"); generateFloatGrid = false; } else { var view = new GridView(); Dict.Clear(); var keys = new List <string> { "" }; var docKeys = Documents.GetKeys(null, SampleMount); keys.AddRange(docKeys); var tool = CurrentTool; foreach (var key in keys) { var col = new GridViewColumn { Header = key, DisplayMemberBinding = new Binding($"[{key}]"), Width = 155 }; view.Columns.Add(col); var group = new SmartGroup { Name = key, Value = alltools.Where(d => d.Column == key).ToList() }; group.PropertyChanged += (s, e) => { if (e.PropertyName == "Name") { var last = alltools.LastOrDefault() as IColumnDataTransformer; if (last != null && last.TypeName == "列名修改器" && last.NewColumn == key) { last.NewColumn = group.Name; } else { last = PluginProvider.GetObjectInstance("列名修改器") as IColumnDataTransformer; last.NewColumn = group.Name; last.Column = key; InsertModule(last); ETLMount++; OnPropertyChanged("ETLMount"); RefreshSamples(); } } }; Dict.Add(group ); } if (tool != null) { Dict.Where(d => d.Name == tool.Column).Execute(d => d.GroupType = GroupType.Input); var transformer = tool as IColumnDataTransformer; if (transformer != null) { var newcol = transformer.NewColumn.Split(' '); if (transformer.IsMultiYield) { Dict.Execute(d => d.GroupType = newcol.Contains(d.Name)? GroupType.Input:GroupType.Output); } else { Dict.Where(d => d.Name == transformer.NewColumn).Execute(d => d.GroupType = GroupType.Output);; } } } var nullgroup = Dict.FirstOrDefault(d => string.IsNullOrEmpty(d.Name)); nullgroup?.Value.AddRange( alltools.Where( d => Documents.GetKeys().Contains(d.Column) == false && string.IsNullOrEmpty(d.Column) == false)); if (MainDescription.IsUIForm && IsUISupport) { if (dataView != null) { dataView.View = view; } } } }
private void InitUI() { var alltools = CurrentETLTools.Take(ETLMount).ToList(); if (generateFloatGrid) { var gridview = PluginProvider.GetObjectInstance<IDataViewer>("可编辑列表"); var r = gridview.SetCurrentView(Documents); if (ControlExtended.DockableManager == null) return; ControlExtended.DockableManager.AddDockAbleContent( FrmState.Custom, r, "样例数据"); generateFloatGrid = false; } else { var view = new GridView(); Dict.Clear(); var keys = new List<string> {""}; var docKeys = Documents.GetKeys(null, SampleMount); keys.AddRange(docKeys); var tool = CurrentTool; foreach (var key in keys) { var col = new GridViewColumn { Header = key, DisplayMemberBinding = new Binding($"[{key}]"), Width = 155 }; view.Columns.Add(col); var group = new SmartGroup { Name = key, Value = alltools.Where(d => d.Column == key).ToList() }; group.PropertyChanged += (s, e) => { if (e.PropertyName == "Name") { var last = alltools.LastOrDefault() as IColumnDataTransformer; if (last != null && last.TypeName == "列名修改器" && last.NewColumn == key) { last.NewColumn = group.Name; } else { last = PluginProvider.GetObjectInstance("列名修改器") as IColumnDataTransformer; last.NewColumn = group.Name; last.Column = key; InsertModule(last); ETLMount++; OnPropertyChanged("ETLMount"); RefreshSamples(); } } }; Dict.Add(group ); } if (tool != null) { Dict.Where(d=>d.Name==tool.Column).Execute(d=>d.GroupType=GroupType.Input); var transformer = tool as IColumnDataTransformer; if(transformer!=null) { var newcol = transformer.NewColumn.Split(' '); if (transformer.IsMultiYield) { Dict.Execute(d => d.GroupType = newcol.Contains(d.Name)? GroupType.Input:GroupType.Output); } else { Dict.Where(d => d.Name == transformer.NewColumn).Execute(d => d.GroupType = GroupType.Output); ; } } } var nullgroup = Dict.FirstOrDefault(d => string.IsNullOrEmpty(d.Name)); nullgroup?.Value.AddRange( alltools.Where( d => Documents.GetKeys().Contains(d.Column) == false && string.IsNullOrEmpty(d.Column) == false)); if (MainDescription.IsUIForm && IsUISupport) { if (dataView != null) { dataView.View = view; } } } }