public static EditorItem createByDataRow(DataRow _item) { var result = new EditorItem(_item); var table = _item.Table; result.elements = new List <EditorElementItem>(table.Columns.Count); result.rules = new Dictionary <string, string>(); var tableName = _item.Table.TableName; var notNullKeys = TableKeys.GetTableKeys(tableName, TableKeys.KeyType.NotNull); var primaryKey = TableKeys.GetPrimaryKey(tableName); foreach (DataColumn column in _item.Table.Columns) { if (column.ColumnName != primaryKey) { var editor = new EditorElementItem(tableName, column.ColumnName, column.DataType); result.elements.Add(editor); var rule = getRule(column.ColumnName, column.DataType, notNullKeys.Contains(column.ColumnName)); if (!string.IsNullOrEmpty(rule)) { result.rules.Add(column.ColumnName, rule); } } } return(result); }