payMonth라는 null 가능 정수 열이있는 테이블 지불이 있습니다. 다음과 같은 수업 및 목록이 있습니다 :C# 바인딩, 표시, 서식 지정, 선호하는 크기 오류에 대한 datagridviewcomboboxcolumn
public class months
{
public int payMonth { get; set; }
public string monthName { get; set; }
}
lstMonths = new List<months> {
,new months() { payMonth = 1, monthName = "jan" }
,new months() { payMonth = 2, monthName = "feb" }
,new months() { payMonth = 3, monthName = "mar" }
,new months() { payMonth = 4, monthName = "apr" }
,new months() { payMonth = 5, monthName = "may" }
,new months() { payMonth = 6, monthName = "jun" }
,new months() { payMonth = 7, monthName = "jul" }
,new months() { payMonth = 8, monthName = "aug" }
,new months() { payMonth = 9, monthName = "sep" }
,new months() { payMonth = 10, monthName = "oct" }
,new months() { payMonth = 11, monthName = "nov" }
,new months() { payMonth = 12, monthName = "dec" }};
cmbMonth = new DataGridViewComboBoxColumn();
cmbMonth.DataSource = lstMonths;
cmbMonth.ValueMember = "payMonth";
cmbMonth.DisplayMember = "monthName";
cmbMonth.DataPropertyName = "payMonth";
cmbMonth.Name = "cmbPayMonth";
cmbMonth.HeaderText = "Month";
cmbMonth.FlatStyle = FlatStyle.Flat;
cmbMonth.Width = 80;
dgvPayments.Columns.Insert(5, cmbMonth);
문제가 여기에 있습니다. 데이터가 dgv에 표시되면 DataGridViewComboBoxColumn cmbMonth는 월 이름 ('Jan', 'Feb', 'Mar'...)이 아닌 숫자 값 (1,2,3, ...)을 표시합니다. 그리고 내가 dgv를 클릭하면 오류를 표시합니다 : 형식 지정, 표시 및 someSize 형식, preferredSize. DataPropertyName 속성을 제거하면이 오류가 발생하지만 데이터가 표시되지 않습니다. 하지만 테이블의 payMonth 값은 목록 범위에만 있거나 null입니다.
무슨 잘못 :
이것은 지불 테이블입니까? 당신의 갱신
Database type of payMonth column is Number: integer
MS 액세스 유형 Number: integer
후
내가 당신의 코드 샘플에서 의심스러운 아무것도 볼
short
로 (INT16)를payMonth
속성을 변경해야합니다. 'DataGridVIew'에 대한 형식화 이벤트 핸들러가 있습니까? – Fabio처리기가 없지만 기본 셀 스타일 –
지불 테이블에'payMonth' 열의 유형은 무엇입니까? 개월 목록에있는 'Int32'입니까? – Fabio