gpt4 book ai didi

c# - 显示列表 C# 中的日期

转载 作者:行者123 更新时间:2023-11-30 23:32:56 24 4
gpt4 key购买 nike

我试图在 ListBox 中显示来自 list 的日期。为此,我尝试将 list 绑定(bind)到 listbox

这是我的驱动程序类的代码。

public class Driver
{
private string name;
private string occupation;
private DateTime dateOfBirth;
private List<DateTime> dateOfClaim;

public Driver(string name, string occupation, DateTime dateOfBirth, List<DateTime> dateOfClaim)
{
this.name = name;
this.occupation = occupation;
this.dateOfBirth = dateOfBirth;
this.dateOfClaim = dateOfClaim;
}

public string DriverName
{
get{ return name; }
set{ name = value; }
}

public string DriverOccupation
{
get { return occupation; }
set { occupation = value; }
}

public DateTime DriverDateOfBirth
{
get { return dateOfBirth; }
set { dateOfBirth = value; }
}

public List<DateTime> DriverDateOfClaim
{
get { return dateOfClaim; }
set { dateOfClaim = value; }
}
}

我有一个按钮,它允许您为司机的 claim 添加一个日期,最多 5 个 claim 。我有一个“临时”列表,它在将这些日期分配给 Driver list 中的 dateOfClaim list 之前保存这些日期,因为新的驱动程序对象具有尚未创建。

以下是声明和填充数组列表的表单中的部分代码。

private List<Driver> drivers = new List<Driver>();
private List<DateTime> claimDates = new List<DateTime>();

if (noOfClaims <= 4)
{
claimDates.Add(dtpAddClaim.Value.Date);
noOfClaims++;
}

if (noOfDrivers <= 4)
{
drivers.Add(new Driver(txtName.Text, txtOccupation.Text, dtpDOB.Value.Date, claimDates));
noOfDrivers++;
}

要将 dateOfClaim 列表 绑定(bind)到 listbox,我尝试使用以下代码,但列表框中没有任何显示。

lstClaimDates.DataSource = drivers;
lstClaimDates.DisplayMember = "DriverDateOfClaim";

我已尝试使用以下代码在标签中显示日期,但同样没有任何显示让我相信我没有正确添加到 dateOfClaim 列表

foreach (DateTime d in drivers[0].driverDateOfClaim)
label1.Text += d.ToString() + " ";

如果能帮助解决这个问题,我们将不胜感激。

最佳答案

WinForms:

您需要定义要在 listBox 中显示的值/字段/属性:

List<Driver> drivers = new List<Driver>();   
drivers.Add(new Driver("name", "The Earth", DateTime.Now, null));
listBox1.DataSource = drivers;
listBox1.DisplayMember = "drivername";

更新 0:

如果它不适用于您,请告诉我:

foreach (var c in drivers[0].driverDateOfClaim)
{
listBox1.Items.Add(c);
}

Magnus Montin是 super 程序员,他shows another solution :

List<Driver> drivers = new List<Driver>();            
drivers.Add(new Driver("name", "The Earth", DateTime.Now, new List<DateTime>() {
DateTime.Now,
DateTime.Now,
} ));
listBox1.DataSource = drivers[0].driverDateOfClaim;

更新 1:

 List<Driver> drivers = new List<Driver>();            
drivers.Add(new Driver("name", "The Earth", DateTime.Now, new List<DateTime>()
{
DateTime.Now,
DateTime.Now,
} ));
foreach (var c in drivers[0].driverDateOfClaim)
{
textBox1.Text += " | " + c;
}

关于c# - 显示列表 C# 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34109542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com