我需要一些关于WinForms数据绑定的帮助/指导,我似乎无法让Google帮助我解决这个问题。WinForms数据绑定 - 绑定到列表中的对象
这是我的场景。考虑下面的类,它类似于我所需要的:
public class Car
{
public string Name { get; set; }
public List<Tire> Tires { get; set; }
}
public class Tire
{
public double Pressure { get; set; }
}
我的这种情况下,将是汽车类的一个对象,具有四个轮胎对象名单。请注意,我将在此列表中始终有一个已知数量的对象。
现在我想将数据绑定到包含五个文本框的表单。一个带有汽车名称的文本框和一个带有每个轮胎压力的文本框。
关于如何使这项工作的任何想法? VS中的设计师似乎不允许我通过分配像轮胎[0],压力这样的列表索引来设置它。
我目前的解决方案是绑定到“BindableCar”这将是这样的:
public class BindableCar
{
private Car _car;
public BindableCar(Car car)
{
_car = car;
}
public string Name
{
get { return _car.Name; }
set { _car.Name = value; }
}
public double Tire1Pressure
{
get { return _car.Tires[0].Pressure; }
set { _car.Tires[0].Pressure = value; }
}
public double Tire2Pressure
{
get { return _car.Tires[1].Pressure; }
set { _car.Tires[1].Pressure = value; }
}
public double Tire3Pressure
{
get { return _car.Tires[2].Pressure; }
set { _car.Tires[2].Pressure = value; }
}
public double Tire4Pressure
{
get { return _car.Tires[3].Pressure; }
set { _car.Tires[3].Pressure = value; }
}
}
但是当我的列表中包含的20,而不是4个对象这变得很丑陋,并为每个我想这些对象的绑定6个属性。这使得一个巨大的“BindableObject”!
不,我没有,因为我认为这是不支持由于设计师提示的消息。我会尽快尝试。 – 2009-03-02 12:12:59