フィールドにDateTimeというフィールドがあります。データグリッドビューのC#に日付のみを表示します。私はdatetimeを取得します。例:22.03.2016 00:00:00 何か助けていただければ幸いです。私は次のことを試してみました :DataGridView列に日付のみを表示する
private void bindListToGridView1(List<Item> list)
{
try
{
dataGridView1.AllowUserToAddRows = false;
ListtoDataTableConverter converter = new ListtoDataTableConverter();
DataTable dt2 = converter.ToDataTable(listToPresent);
dataGridView1.DataSource = null;
using (dt2)
{
dataGridView1.AutoGenerateColumns = false;
dataGridView1.ColumnCount = 3;
dataGridView1.Columns[0].Name = "id";
dataGridView1.Columns[0].HeaderText = "ID";
dataGridView1.Columns[0].DataPropertyName = "id";
dataGridView1.Columns[1].Name = "itemName";
dataGridView1.Columns[1].HeaderText = "Item Name";
dataGridView1.Columns[1].DataPropertyName = "itemName";
dataGridView1.Columns[2].Name = "productionDate";
dataGridView1.Columns[2].HeaderText = "Production Date";
dataGridView1.Columns[2].DataPropertyName = "productionDate";
dataGridView1.Columns[2].DefaultCellStyle.Format = "yyyy'/'MM'/'dd";
dataGridView1.DataSource = dt2;
}
}
catch (Exception ex)
{
}
}
編集
をここでは、私はDataTable
を作成するために使用する方法である:
public class ListtoDataTableConverter
{
public DataTable ToDataTable<T>(List<T> items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
//Get all the properties
PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
//Setting column names as Property names
dataTable.Columns.Add(prop.Name);
}
foreach (T item in items)
{
var values = new object[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
//inserting property values to datatable rows
values[i] = Props[i].GetValue(item, null);
}
dataTable.Rows.Add(values);
}
//put a breakpoint here and check datatable
return dataTable;
}
}
私はdatetimeを取得します。 dataTable dt2の22.03.2016 00:00:00 –
、productionDate列の値の実際のタイプは何ですか?それはDateTimeですか? – ASh
はいそれは公開ですDateTime productionDate {get;セット; } –