/// <summary> /// 保存 /// </summary> bool SaveOperator() { if (null == lb_Controls1Function.SelectedItem) { Wrapper.ShowDialog("方法名称1没有选择"); return(false); } CtrlFuctionInfo cfi = (lb_Controls1Function.SelectedItem as ListBoxItem).Tag as CtrlFuctionInfo; string eventName = string.Format("{0}", cfi.Name); string controlName = string.Format("{0}", (lb_Controls1.SelectedItem as ListBoxItem).Content); var xml = IDesignFramework.GetCurrentXmlTemplate(); if (null == xml.EventLinkItem) { xml.EventLinkItem = new List <EventLinkInfo>(); } string _controlName = _GetControlName(); //-->事件 var eli = xml.EventLinkItem.Where(p => p.ControlName == _controlName && p.EventName == EventName).GetFirst <EventLinkInfo>(); if (null == eli) { eli = new EventLinkInfo(); xml.EventLinkItem.Add(eli); } eli.ControlName = _controlName; eli.EventName = this.EventName; eli.Item = new List <ControlActivityInfo>(); //-->行为 var cai = eli.Item.Where(p => p.ControlName.Equals(controlName) && p.EventName.Equals(eventName)).GetFirst <ControlActivityInfo>(); if (null == cai) { cai = new ControlActivityInfo(); eli.Item.Add(cai); } //-->保存操作。 cai.ActivityName = this.ActivityName; cai.ActivityType = this.ActivityType; cai.ControlName = controlName; cai.EventName = eventName; cai.Description = cfi.Description; cai.Param = new List <ParamInfo>(); foreach (var v in this.sp_Children.Children) { ParameterSelected select = v as ParameterSelected; if (null == select || null == select.ParamForamt) { continue; } cai.Param.Add(select.ParamForamt); } IDesignFramework.UpdateCurrentTemplate(); return(true); }
void lb_Controls1Function_SelectionChanged(object sender, SelectionChangedEventArgs e) { sp_Children.Children.Clear(); ListBoxItemExtend controls = lb_Controls1.SelectedItem as ListBoxItemExtend; var parameterItem = controls.Tag as List <MetaDataColumnInfo>; if (null != parameterItem) { foreach (var v in parameterItem) { ParameterSelected ps = new ParameterSelected(); ps.txtParamName.Text = string.Format("{0}【{1}】", v.column_name, v.column_comment); ps.OrgMetaDataColumn = v; ps.FieldName = v.column_name; ps.DeleteClick += ps_DeleteClick; ps.ModifyClick += ps_ModifyClick; sp_Children.Children.Add(ps); } } var ci = controls.ControlInfo; /****************************************************************************** * * 控件的参数就是控件MetaData里的row信息, * * ControlDataSourceTable 所处在的 MetaData信息也要取出来。 * * *****************************************************************************/ if (!ci.ControlDataSourceTableName.IsNullOrEmpty()) { var mdi = IDesignFramework.GetMetaDataInfoByTableName(ci.ControlDataSourceTableName); if (null != mdi && null != mdi.Item && 0 < mdi.Item.Count) { Label lbl = new Label(); lbl.Height = 2; lbl.Background = new SolidColorBrush(Colors.Black); sp_Children.Children.Add(lbl); foreach (var item in mdi.Item) { ParameterSelected ps = new ParameterSelected(); ps.txtParamName.Text = string.Format("{0}【{1}】", item.column_name, item.column_comment); ps.OrgMetaDataColumn = item; ps.FieldName = item.column_name; ps.OrgIsDataSource = true; ps.DeleteClick += ps_DeleteClick; ps.ModifyClick += ps_ModifyClick; sp_Children.Children.Add(ps); } } } if (sp_Children.Children.Count > 0) { _CurrentParamterSelected = sp_Children.Children[0] as ParameterSelected; } }
void ps_DeleteClick(object sender, RoutedEventArgs e) { ParameterSelected ps = sender as ParameterSelected; if (null == ps) { return; } ps.Text = string.Empty; ps.TargetCtrlName = string.Empty; ps.TargetMetaDataColumn = null; ps.InitLoadValue = null; }
void ps_ModifyClick(object sender, RoutedEventArgs e) { //-->将值显示到text上去 var ps = sender as ParameterSelected; if (null == ps) { return; } if (null != _CurrentParamterSelected) { _CurrentParamterSelected.BackgroundReset(); } //-->获取所有其它控件 _CurrentParamterSelected = ps; _CurrentParamterSelected.BackgroundSet(); }
void LoadCtrlParam(ControlInfo ci, List <MetaDataColumnInfo> paramItem) { if (ci.MetaData.IsNotEmpty()) { foreach (var v in paramItem) { var ps = new ParameterSelected(); ps.txtParamName.Text = string.Format("{0}【{1}】", v.column_name, v.column_comment); ps.OrgMetaDataColumn = v; ps.FieldName = v.column_name; ps.DeleteClick += ps_DeleteClick; ps.ModifyClick += ps_ModifyClick; spCtrlParams.Children.Add(ps); } } /****************************************************************************** * * 控件的参数就是控件MetaData里的row信息, * * ControlDataSourceTable 所处在的 MetaData信息也要取出来。 * * *****************************************************************************/ if (ci.ControlDataSourceTableName.IsNotEmpty()) { var mdi = IDesignFramework.GetMetaDataInfoByTableName(ci.ControlDataSourceTableName); if (null != mdi && null != mdi.Item && 0 < mdi.Item.Count) { Label lbl = new Label(); lbl.Height = 2; lbl.Background = new SolidColorBrush(Colors.Black); spCtrlParams.Children.Add(lbl); foreach (var item in mdi.Item) { ParameterSelected ps = new ParameterSelected(); ps.txtParamName.Text = string.Format("{0}【{1}】", item.column_name, item.column_comment); ps.OrgMetaDataColumn = item; ps.FieldName = item.column_name; ps.OrgIsDataSource = true; ps.DeleteClick += ps_DeleteClick; ps.ModifyClick += ps_ModifyClick; spCtrlParams.Children.Add(ps); } } } }
void ps_ModifyClick(object sender, RoutedEventArgs e) { //-->将值显示到text上去 ParameterSelected ps = sender as ParameterSelected; if (null == ps) { return; } if (null != _CurrentParamterSelected) { _CurrentParamterSelected.BackgroundReset(); } //-->获取所有其它控件 _CurrentParamterSelected = ps; _CurrentParamterSelected.BackgroundSet(); this.lb_Controls2.Visibility = System.Windows.Visibility.Visible; this.lb_Controls2Parameter.Visibility = System.Windows.Visibility.Visible; }
void SetParametSelected(ParameterSelected ps, MetaDataColumnInfo mdci) { if (null == ps || null == mdci) { return; } ps.Text = mdci.column_comment; ps.TargetMetaDataColumn = mdci; if (null == cbbCtrl.SelectedItem) { ps.OrgCtrlInfo = _CurrentControlInfo; ps.TargetCtrlName = this.EventControlName; } else { var ci = cbbCtrl.SelectedItem as ControlInfo; ps.OrgCtrlInfo = ci; ps.TargetCtrlName = ci.Name; } //-->这个还要进一步确定一下。 var item = this.lbCtrls.SelectedItem as ListBoxItemExtend; ps.OrgIsDataSource = item.ControlInfo.ControlDataSourceTableName.IsNotEmpty() ? true : false; }
/// <summary> /// 释放资源 /// </summary> public void Dispose() { this.lb_Controls1.SelectionChanged -= lb_Controls1_SelectionChanged; this.lb_Controls1Function.SelectionChanged -= lb_Controls1Function_SelectionChanged; this.lb_Controls2.SelectionChanged -= lb_Controls2_SelectionChanged; this.lb_Controls2Parameter.SelectionChanged -= lb_Controls2Parameter_SelectionChanged; this.Loaded -= CallFunctionSelectors_Loaded; foreach (var v in this.sp_Children.Children) { var ps = v as ParameterSelected; if (null == ps) { continue; } ps.DeleteClick -= ps_DeleteClick; ps.ModifyClick -= ps_ModifyClick; ps.Dispose(); } this.sp_Children.Children.Clear(); foreach (var v in this.lb_Controls1.Items) { var child = v as IDisposable; if (null == child) { continue; } child.Dispose(); } this.lb_Controls1.Items.Clear(); foreach (var v in this.lb_Controls1Function.Items) { var child = v as IDisposable; if (null == child) { continue; } child.Dispose(); } this.lb_Controls1Function.Items.Clear(); foreach (var v in this.lb_Controls2.Items) { var child = v as IDisposable; if (null == child) { continue; } child.Dispose(); } this.lb_Controls2.Items.Clear(); foreach (var v in this.lb_Controls2Parameter.Items) { var child = v as IDisposable; if (null == child) { continue; } child.Dispose(); } this.lb_Controls2Parameter.Items.Clear(); IDesignFramework = null; CurrentContextMenuInfo = null; ActivityName = string.Empty; IActivity = null; EventControlName = string.Empty; ActivityType = string.Empty; EventName = string.Empty; CurrentSelectedSetEventControl = null; _Controls2Item = null; _CurrentParamterSelected.Dispose(); _CurrentParamterSelected = null; _CurrentControlInfo = null; }