/// <summary> /// 加载用户自定义设置(如未加载则返回false) /// </summary> /// <param name="grid"></param> /// <returns></returns> public static bool LoadGridSettingsByXml(CustomGridControl grid) { if (!File.Exists(CurrentApplicationDirectory)) { return(false); } //IContextService context = new ContextService(); //var userAccount = context.GetUser().Account; //todo:临时处理 var userAccount = "admin"; var doc = new XmlDocument(); doc.Load(CurrentApplicationDirectory); var exist = ExistAccount(userAccount, grid, doc) ?? ExistAccount("mainDefalut", grid, doc); if (exist == null) { return(false); } var columns = grid.Columns; //加上BeginInit,EndInit为了修复自定义列顺序无效问题 grid.BeginInit(); foreach (var column in columns) { var eleCol = (XmlElement)exist.SelectSingleNode(string.Format("./Column[@Name='{0}']", column.FieldName)); if (eleCol != null) { column.Width = double.Parse(eleCol.GetAttribute("Width")); column.VisibleIndex = string.IsNullOrEmpty(eleCol.GetAttribute("VisibleIndex")) ? column.VisibleIndex : int.Parse(eleCol.GetAttribute("VisibleIndex")); } } grid.EndInit(); return(true); }
public static bool ExistCustomerSetting(CustomGridControl grid) { //IContextService context = new ContextService(); //var userAccount = context.GetUser().Account; //todo:临时处理 var userAccount = "admin"; var doc = new XmlDocument(); if (!File.Exists(CurrentApplicationDirectory)) { return(false); } doc.Load(CurrentApplicationDirectory); var existUser = doc.DocumentElement.SelectSingleNode(string.Format("//User[@Account='{0}']", userAccount)); if (existUser == null) { return(false); } var existGrid = existUser.SelectSingleNode(string.Format("./Grid[@UniqueName='{0}']", grid.UniqueName)); if (existGrid == null) { return(false); } return(true); }
private void OnCustomersViewGetCustomGridPreview(object sender, GetGridPreviewEventArgs e) { GridControl gridPreview = new CustomGridControl(); ColumnView view = new CustomGridView(gridPreview); gridPreview.MainView = view; gridPreview.DataSource = CustomersBindingSource; e.GridPreview = gridPreview; view.Columns.AddVisible("ID"); e.GroupColumn = view.Columns.AddVisible("Name"); }
public void InitViewStylesTest() { CustomGridControl gc = new CustomGridControl(); gc.ForceInitialize(); gc.MainView = new CustomGridView(gc); GridColumn col = ((ColumnView)gc.MainView).Columns.AddField("Column"); using (CustomGridViewPrinting cgvp = new CustomGridViewPrinting(gc, col)) { cgvp.InitFrame(gc.MainView, "GridView", new Bitmap(16, 16)); typeof(CustomGridViewPrinting).InvokeMember("InitViewStyles", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, cgvp, new object[0]); } }
public GridExpander(CustomGridControl grid, IMassInputListViewModel viewModel) { if (grid == null) { throw new ArgumentNullException("grid"); } if (viewModel == null) { throw new ArgumentNullException("viewModel"); } _grid = grid; _viewModel = viewModel; }
private void AddExpander(CustomGridControl grid) { var ctx = (IMassInputListViewModel)grid.DataContext; if (ctx == null) { return; } GridExpander expander; if (_gridExpanders.TryGetValue(grid, out expander)) { expander.StopObserving(); _gridExpanders.Remove(grid); } expander = new GridExpander(grid, ctx); _gridExpanders[grid] = expander; expander.StartObserving(); }
private static XmlNode ExistAccount(string account, CustomGridControl grid, XmlDocument doc) { if (!File.Exists(CurrentApplicationDirectory)) { return(null); } doc.Load(CurrentApplicationDirectory); var existUser = doc.DocumentElement.SelectSingleNode(string.Format("//User[@Account='{0}']", account)); if (existUser == null) { return(null); } var existGrid = existUser.SelectSingleNode(string.Format("./Grid[@UniqueName='{0}']", grid.UniqueName)); if (existGrid == null) { return(null); } return(existGrid); }
private void SelectGridItem(CustomGridControl grid) { if (grid == null) { return; } grid.UnselectAll(); var model = GetModel(); if (model == null || model.EditValue == null) { return; } var itemsSource = grid.ItemsSource as IList; if (itemsSource == null) { return; } Func <object, string, WMSBusinessObject, bool> compareFunc = (val, valMember, row) => { if (row == null) { return(false); } if (string.IsNullOrEmpty(valMember)) { return(val.Equals(row.GetKey())); } return(val.Equals(row.GetProperty(valMember))); }; try { grid.BeginSelection(); var index = -1; for (var i = 0; i < grid.RowsCount; i++) { var obj = grid.GetRow(i) as WMSBusinessObject; if (compareFunc(model.EditValue, model.ValueMember, obj)) { index = i; break; } } if (index < 0) { return; } grid.SelectItem(index); var tableView = grid.View as TableView; if (tableView != null) { tableView.FocusedRowHandle = index; tableView.MoveFocusedRow(tableView.FocusedRowHandle); } } finally { grid.EndSelection(); } }
private void SelectGridItem(CustomGridControl grid) { if (grid == null) { return; } var selectionItems = grid.SelectedItems; var itemsSource = grid.ItemsSource as IList; if (itemsSource == null || selectionItems == null) { return; } var tableView = grid.View as TableView; if (tableView == null) { return; } // если ничего не выбрано - нужно сбрасывать focus (в противном случае при сортировках записи скачут) if (selectionItems.Count == 0) { var mv = DataContext as IListViewModel; if (mv != null && mv.IsSelectedFirstItem) { grid.UnselectAll(); grid.SelectItem(0); MoveFocusedRow(tableView, 0); return; } tableView.FocusedRowHandle = -1; return; } try { grid.BeginSelection(); grid.UnselectAll(); foreach (var item in selectionItems) { var ikh = item as IKeyHandler; if (ikh == null) { continue; } var index = grid.IndexOf(ikh.GetKey()); if (index < 0) { continue; } grid.SelectItem(index); MoveFocusedRow(tableView, index); } } finally { grid.EndSelection(); } }