//创建CheckBox对象 private XCheckBox CreateCheckBox(string name, int id, double left, double right, double top, double bottom, bool binding = false) { XControl.XCheckBox obj = new XControl.XCheckBox() { Content = name, Margin = CreateBorder(left, right, top, bottom), Tag = id, }; if (binding) { Binding bind = new Binding("IsSelectedProcess"); obj.SetBinding(XCheckBox.IsCheckedProperty, bind); obj.Click += new RoutedEventHandler(OnSelectAllIP); obj.Name = "AllCheckBox"; AllObj = obj; } return(obj); }
//根据回包动态添加列 public void AddListColumn(string ep, List <ProcessTable> list) { this.Dispatcher.Invoke(() => { ProcessNameList.Clear(); ProcessView.Columns.Clear(); ProcessCheckObj.Clear(); ProcessTypeList.Children.Clear(); //动态生成选择IP列 Tool.XControl.GridViewColumnEx SeleIP = new GridViewColumnEx() { Header = CreateCheckBox("", -1, 0, 0, 0, 0, true), Width = 40, CellTemplate = (DataTemplate)Resources["SelectIP"], }; ProcessView.Columns.Add(SeleIP); //动态生成IP列 Tool.XControl.GridViewColumnEx ID = new GridViewColumnEx() { Header = "编号", Width = 150, CellTemplate = (DataTemplate)Resources["ID"] }; ProcessView.Columns.Add(ID); //动态生成IP列 Tool.XControl.GridViewColumnEx IP = new GridViewColumnEx() { Header = "IP地址", Width = 150, CellTemplate = (DataTemplate)Resources["IP"] }; ProcessView.Columns.Add(IP); //添加进程名称列 int i = 1; foreach (var proc in list) { if (i > 5) { continue; } string index = "ProcessNo." + Convert.ToString(i); if (ProcessNameList.Contains(proc.ProcessName.value_)) { continue; } ProcessNameList.Add(proc.ProcessName.value_); Tool.XControl.GridViewColumnEx obj = new GridViewColumnEx() { Header = proc.ProcessName.value_, Width = 150, CellTemplate = (DataTemplate)Resources[index] }; ProcessView.Columns.Add(obj); XControl.XCheckBox obj_cb = CreateCheckBox(proc.ProcessName.value_, proc.ProcessId.value_, 0, 20, 15, 10); obj_cb.Click += new RoutedEventHandler(OnSelectProcess); ProcessTypeList.Children.Add((XControl.XCheckBox)obj_cb); ProcessCheckObjList.Add(obj_cb); i++; } RobotInfoCollect.GetInstance().UpdateProcessTable(ep, list); }); }