public VisualizerForm(VisualizerBaseTable p_objBaseTableToVisualize) : this() { // If no data sent if (p_objBaseTableToVisualize.Table.Length == 0) { return; } SetDataToDataGrid(p_objBaseTableToVisualize); // Since only one table sent objExpander.Visibility = Visibility.Collapsed; }
public static BaseTable DataSetToVisualizerBase(DataSet p_objDataSetToVisualize) { // List of bast type tables VisualizerBaseTable[] arrTables = new VisualizerBaseTable[p_objDataSetToVisualize.Tables.Count]; // for each table in DataSet for (int intCurrTable = 0; intCurrTable < p_objDataSetToVisualize.Tables.Count; intCurrTable++) { #region Convert DataTable to Base Table // Get current Table DataTable dtSingleTableFromDS = p_objDataSetToVisualize.Tables[intCurrTable]; // Create Dictionary of columns and types Dictionary<string, Type> dicColumns = new Dictionary<string, Type>(); foreach (DataColumn column in dtSingleTableFromDS.Columns) { dicColumns.Add(column.ColumnName, column.DataType); } // Create array of Primary-key columns string[] arrPrimaryKeys = new string[dtSingleTableFromDS.PrimaryKey.Length]; for (int intCurrPK = 0; intCurrPK < arrPrimaryKeys.Length; intCurrPK++) { arrPrimaryKeys[intCurrPK] = dtSingleTableFromDS.PrimaryKey[intCurrPK].ColumnName; } // Create Base table from current DataTable VisualizerBaseTable objSingleTableFromDS = new VisualizerBaseTable(DataTableToMatrix(dtSingleTableFromDS), dicColumns, arrPrimaryKeys, dtSingleTableFromDS.TableName); // Ver2: prepare to Hierarchical DataView within Dataset // Ver2: objSingleTableFromDS.MyIdField = objHierarchicalDV.MyIDField; // Ver2: objSingleTableFromDS.MyParentIdField = objHierarchicalDV.MyParentIDField; #endregion // Add Base table to array of tables arrTables[intCurrTable] = objSingleTableFromDS; } // Create base object to that can go between debugger and debugee BaseTable objVisualizer = new BaseTable(arrTables); return objVisualizer; }
public static DataTable BaseTableToDataTable(VisualizerBaseTable p_objInnerTable) { // New DataTable DataTable dtNormalDataTable = new DataTable(p_objInnerTable.TableName); // Create columns by type foreach (string strColName in p_objInnerTable.MyColumns.Keys) { dtNormalDataTable.Columns.Add(strColName, p_objInnerTable.MyColumns[strColName]); } // Create Primary Key array DataColumn[] arrPK = new DataColumn[p_objInnerTable.MyPrimaryKey.Length]; for (int intCurrPk = 0; intCurrPk < p_objInnerTable.MyPrimaryKey.Length; intCurrPk++) { arrPK[intCurrPk] = dtNormalDataTable.Columns[p_objInnerTable.MyPrimaryKey[intCurrPk]]; } // User primary key array dtNormalDataTable.PrimaryKey = arrPK; // For each existing row foreach (object[] objCurrRow in p_objInnerTable.Table) { // new row DataRow drNewRow = dtNormalDataTable.NewRow(); // copy all data from row in one shot (instead of coping each cell) drNewRow.ItemArray = objCurrRow; // add row to new table dtNormalDataTable.Rows.Add(drNewRow); } return dtNormalDataTable; }
private void SetDataToDataGrid(VisualizerBaseTable p_objBaseTableToVisualize) { // Clear dummy columns from Visual Studio Designer dgvVisualizer.Columns.Clear(); // Set source of data dgvVisualizer.ItemsSource = p_objBaseTableToVisualize.Table; // foreach column foreach (string strColumnName in p_objBaseTableToVisualize.MyColumns.Keys) { // We add a column to the DataGrid dgvVisualizer.Columns.Add(new DataGridTextColumn() { // Title of Column Header = strColumnName, // Data in column is taken with binding from the row in cell number X Binding = new Binding("[" + dgvVisualizer.Columns.Count + "]") }); } // Display status: lblRowsCounter.Content = "Total rows: " + p_objBaseTableToVisualize.Table.Length; }
/// <summary> /// Basic Table /// </summary> /// <param name="p_arrTable">Data source</param> /// <param name="p_dicColumns">columns names and types</param> /// <param name="p_arrPrimaryKeys">Primary keys</param> /// <param name="p_strTableName">Name of table</param> public BaseTable(object[][] p_arrTable, Dictionary<string, Type> p_dicColumns, string[] p_arrPrimaryKeys, string p_strTableName) { VisualizerBaseTable objTableToVisualize = new VisualizerBaseTable(p_arrTable, p_dicColumns, p_arrPrimaryKeys, p_strTableName); m_lstTableToVisualize.Add(objTableToVisualize); }