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; }
}
私のインスタンスは、4つのTireオブジェクトを持つリストのCarクラスのオブジェクトになります。ここでは、常にリストにある既知の数のオブジェクトがあることに注意してください。
これを5つのテキストボックスを含むフォームにバインドします。車の名前が1つのテキストボックス、タイヤの圧力がそれぞれ1つのテキストボックス。
どのようにすればいいですか? 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"を作ります!
いいえ、デザイナーのメッセージが表示されていないため、これはサポートされていないと私は想定していませんでした。私はできるだけ早くこれを試してみます。 –