예제 #1
0
        private DataGridViewComboBoxColumn buildDGVComboBoxColumn(DataColumn dataColumn, LookupTables lookupTables)
        {
            DataGridViewComboBoxColumn newComboBoxColumn = new DataGridViewComboBoxColumn();
            newComboBoxColumn.DataPropertyName = dataColumn.ColumnName;
            newComboBoxColumn.Name = dataColumn.ColumnName;
            newComboBoxColumn.ReadOnly = dataColumn.ReadOnly;
            newComboBoxColumn.ValueType = dataColumn.DataType;
            newComboBoxColumn.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;

            if (dataColumn.ExtendedProperties.Contains("group_name"))
            {
                string groupName = dataColumn.ExtendedProperties["group_name"].ToString();
                DataTable dt = lookupTables.GetCodeValueDataTableByGroupName(groupName);
                if (dataColumn.ExtendedProperties.Contains("is_nullable") && dataColumn.ExtendedProperties["is_nullable"].ToString() == "Y")
                {
                    DataRow dr = dt.NewRow();
                    dr["display_member"] = "[Null]";
                    dr["value_member"] = DBNull.Value;
                    dt.Rows.InsertAt(dr, 0);
                    dt.AcceptChanges();
                }

                newComboBoxColumn.DisplayMember = "display_member";
                newComboBoxColumn.ValueMember = "value_member";
                newComboBoxColumn.DataSource = dt;
                newComboBoxColumn.DefaultCellStyle.DataSourceNullValue = DBNull.Value;
                newComboBoxColumn.DefaultCellStyle.NullValue = "[Null]";
            }
            return newComboBoxColumn;
        }