Мне нужна помощь / руководство по привязке данных WinForms, и я не могу заставить Google помочь мне с этим.
Вот мой сценарий. Рассмотрим следующие классы, которые похожи на то, что мне нужно:
public class Car
{
public string Name { get; set; }
public List<Tire> Tires { get; set; }
}
public class Tire
{
public double Pressure { get; set; }
}
Моими экземплярами этого будет объект класса Car со списком с четырьмя объектами Tire. Обратите внимание, что здесь у меня всегда будет известное количество объектов.
Теперь я хочу, чтобы данные связывали это с формой, содержащей пять текстовых полей. Одно текстовое поле с названием автомобиля и одно текстовое поле с каждым давлением в шинах.
Есть идеи, как заставить это работать? Конструктор в VS, похоже, не позволяет мне настроить это, назначая индексам списка, например, Tires [0] .Pressure.
Мое текущее решение заключается в привязке к «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"!