private void Textbox_TextChanged(object sender, TextChangedEventArgs e) { var textBox = sender as TextBox; if (textBox.Text == "") { treeGrid.SelectedItems.Clear(); } for (int i = 0; i < treeGrid.View.Nodes.Count; i++) { if (Provider == null) { Provider = treeGrid.View.GetPropertyAccessProvider(); } if (treeGrid.View.Nodes[i].HasChildNodes && treeGrid.View.Nodes[i].ChildNodes.Count == 0) { treeGrid.ExpandNode(treeGrid.View.Nodes[i]); treeGrid.CollapseNode(treeGrid.View.Nodes[i]); } else if (treeGrid.View.Nodes[i].HasChildNodes) { dataRow = (treeGrid.View.Nodes[i].Item as PersonInfo); FindMatchText(dataRow); GetChildNodes(treeGrid.View.Nodes[i]); } else { dataRow = (treeGrid.View.Nodes[i].Item as PersonInfo); FindMatchText(dataRow); } } }
/// <summary> /// Initializes the new instance of the Form1 class. /// </summary> public Form1() { InitializeComponent(); this.sfDataGrid1.ShowGroupDropArea = true; this.sfDataGrid1.DataSource = new OrderInfoCollection().OrdersListDetails; propertyAccessProvider = sfDataGrid1.View.GetPropertyAccessProvider(); this.sfDataGrid1.SelectionMode = GridSelectionMode.None; this.sfDataGrid1.QueryCoveredRange += sfDataGrid1_QueryCoveredRange; }
/// <summary> /// Method that handles ItemsSourceChanged event. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void dataGrid_ItemsSourceChanged(object sender, GridItemsSourceChangedEventArgs e) { if (dataGrid.View != null) { reflector = dataGrid.View.GetPropertyAccessProvider(); } else { reflector = null; } }
/// <summary> /// Method that handles ItemsSourceChanged event. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnSfDataGridItemsSourceChanged(object sender, GridItemsSourceChangedEventArgs e) { if (sfGrid.View != null) { reflector = sfGrid.View.GetPropertyAccessProvider(); } else { reflector = null; } }
/// <summary> /// Initializes the new instance of the SfDataGrid. /// </summary> public Form1() { InitializeComponent(); sfDataGrid1.SelectionMode = GridSelectionMode.None; sfDataGrid1.DataSource = new OrderInfoCollection().OrdersListDetails; propertyAccessProvider = sfDataGrid1.View.GetPropertyAccessProvider(); sfDataGrid1.AllowResizingColumns = true; sfDataGrid1.AutoExpandGroups = true; sfDataGrid1.GroupColumnDescriptions.Add(new GroupColumnDescription() { ColumnName = "CustomerID" }); sfDataGrid1.AutoSizeColumnsMode = AutoSizeColumnsMode.Fill; sfDataGrid1.QueryCoveredRange += sfDataGrid1_QueryCoveredRange; sfDataGrid1.DrawCell += sfDataGrid1_DrawCell; sfDataGrid1.TableControl.Scroll += TableControl_Scroll; }
/// <summary> /// Method that handles ItemsSourceChanged event. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void dataGrid_ItemsSourceChanged(object sender, GridItemsSourceChangedEventArgs e) { if (dataGrid.View != null) { reflector = dataGrid.View.GetPropertyAccessProvider(); } else { reflector = null; } dataGrid.Columns["BirthDate"].TextAlignment = System.Windows.TextAlignment.Right; dataGrid.Columns["Rating"].Width = 70; dataGrid.Columns["Gender"].Width = 70; dataGrid.Columns["Salary"].Width = 75; dataGrid.Columns["ContactID"].Width = 90; dataGrid.Columns["BirthDate"].Width = 105; dataGrid.Columns["EmployeeID"].Width = 100; dataGrid.Columns["Name"].Width = 120; }
/// <summary> /// Perform the search operaion for iterating the treegrid nodes. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { var textBox = sender as TextBox; var treeGrid = this.AssociatedObject.treeGrid; if (textBox.Text == "") { treeGrid.SelectedItems.Clear(); } for (int i = 0; i < treeGrid.View.Nodes.Count; i++) { if (Provider == null) { Provider = treeGrid.View.GetPropertyAccessProvider(); } if (treeGrid.View.Nodes[i].HasChildNodes && treeGrid.View.Nodes[i].ChildNodes.Count == 0) { treeGrid.BeginInit(); treeGrid.ExpandNode(treeGrid.View.Nodes[i]); treeGrid.CollapseNode(treeGrid.View.Nodes[i]); treeGrid.EndInit(); } else if (treeGrid.View.Nodes[i].HasChildNodes) { dataRow = (treeGrid.View.Nodes[i].Item as EmployeeInfo); FindMatchText(dataRow); GetChildNodes(treeGrid.View.Nodes[i]); } else { dataRow = (treeGrid.View.Nodes[i].Item as EmployeeInfo); FindMatchText(dataRow); } } }
internal void SetValue(object rowData, string propertyName, IPropertyAccessProvider provider, object changedValue) { Type type = GetPropertyType(rowData, propertyName); if (type == null) { return; } var canconvert = CanConvertToType(changedValue, ref type); if (!canconvert && string.IsNullOrEmpty(changedValue.ToString())) { return; } if (!(canconvert || type == typeof(string) || type == typeof(object))) { return; } var pasteValue = Convert.ChangeType(changedValue, type); provider.SetValue(rowData, propertyName, pasteValue); }
private CoveredCellInfo GetRange(GridColumn column, int rowIndex, int columnIndex, object rowData) { IPropertyAccessProvider reflector = null; reflector = dataGrid.View.GetPropertyAccessProvider(); var range = new CoveredCellInfo(columnIndex, columnIndex, rowIndex, rowIndex); object data = reflector.GetFormattedValue(rowData, column.MappingName); GridColumn leftColumn = null; GridColumn rightColumn = null; // total rows count. int recordsCount = this.dataGrid.GroupColumnDescriptions.Count != 0 ? (this.dataGrid.View.TopLevelGroup.DisplayElements.Count + this.dataGrid.TableSummaryRows.Count + this.dataGrid.UnBoundRows.Count + (this.dataGrid.AddNewRowPosition == AddNewRowPosition.Top ? +1 : 0)) : (this.dataGrid.View.Records.Count + this.dataGrid.TableSummaryRows.Count + this.dataGrid.UnBoundRows.Count + (this.dataGrid.AddNewRowPosition == AddNewRowPosition.Top ? +1 : 0)); // Merge Horizontally // compare right column for (int i = dataGrid.Columns.IndexOf(column); i < this.dataGrid.Columns.Count - 1; i++) { var compareData = reflector.GetFormattedValue(rowData, dataGrid.Columns[i + 1].MappingName); if (compareData == null) { break; } if (!compareData.Equals(data)) { break; } rightColumn = dataGrid.Columns[i + 1]; } // compare left column. for (int i = dataGrid.Columns.IndexOf(column); i > 0; i--) { var compareData = reflector.GetFormattedValue(rowData, dataGrid.Columns[i - 1].MappingName); if (compareData == null) { break; } if (!compareData.Equals(data)) { break; } leftColumn = dataGrid.Columns[i - 1]; } if (leftColumn != null || rightColumn != null) { // set left index if (leftColumn != null) { var leftColumnIndex = this.dataGrid.ResolveToScrollColumnIndex(this.dataGrid.Columns.IndexOf(leftColumn)); range = new CoveredCellInfo(leftColumnIndex, range.Right, range.Top, range.Bottom); } // set right index if (rightColumn != null) { var rightColumnIndex = this.dataGrid.ResolveToScrollColumnIndex(this.dataGrid.Columns.IndexOf(rightColumn)); range = new CoveredCellInfo(range.Left, rightColumnIndex, range.Top, range.Bottom); } return(range); } // Merge Vertically from the row index. int previousRowIndex = -1; int nextRowIndex = -1; // Get previous row data. var startIndex = dataGrid.ResolveStartIndexBasedOnPosition(); for (int i = rowIndex - 1; i >= startIndex; i--) { var previousData = this.dataGrid.GetRecordEntryAtRowIndex(i); if (previousData == null || !previousData.IsRecords) { break; } var compareData = reflector.GetFormattedValue((previousData as RecordEntry).Data, column.MappingName); if (compareData == null) { break; } if (!compareData.Equals(data)) { break; } previousRowIndex = i; } // get next row data. for (int i = rowIndex + 1; i < recordsCount + 1; i++) { var nextData = this.dataGrid.GetRecordEntryAtRowIndex(i); if (nextData == null || !nextData.IsRecords) { break; } var compareData = reflector.GetFormattedValue((nextData as RecordEntry).Data, column.MappingName); if (compareData == null) { break; } if (!compareData.Equals(data)) { break; } nextRowIndex = i; } if (previousRowIndex != -1 || nextRowIndex != -1) { if (previousRowIndex != -1) { range = new CoveredCellInfo(range.Left, range.Right, previousRowIndex, range.Bottom); } if (nextRowIndex != -1) { range = new CoveredCellInfo(range.Left, range.Right, range.Top, nextRowIndex); } return(range); } return(null); }
private void SfDataGrid_ItemsSourceChanged(object sender, Syncfusion.UI.Xaml.Grid.GridItemsSourceChangedEventArgs e) { if (sfDataGrid.View != null) reflector = sfDataGrid.View.GetPropertyAccessProvider(); else reflector = null; }