私はpayMonthという名前のヌル可能な整数列を持つテーブル支払いを持っています。私は以下のクラスとリストを持っています:C#バインディングのデータグリッドビューのコンボボックスを表示、書式設定、優先サイズエラー
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をクリックすると、フォーマット、表示、時折書式設定、preferredSizeというエラーが表示されます。 DataPropertyNameプロパティを削除すると、このエラーは発生しますが、データは表示されません。ただし、テーブル内のpayMonth値はリスト範囲内にあるか、またはnullです。
これは、支払い表です:
いただきましたの?あなたの更新
Database type of payMonth column is Number: integer
MSアクセスタイプNumber: integer
後
する
payMonth
プロパティを変更する必要があります。 'DataGridVIew'のためのどんなフォーマットイベントハンドラもありますか? – Fabioハンドラはありませんが、デフォルトのセルスタイル –
支払いテーブルに 'payMonth'カラムのタイプは何ですか?月のリストのように 'Int32'ですか? – Fabio