当前位置:  开发笔记 > 编程语言 > 正文

WinForms数据绑定 - 绑定到列表中的对象

如何解决《WinForms数据绑定-绑定到列表中的对象》经验,为你挑选了1个好方法。

我需要一些关于WinForms数据绑定的帮助/指导,我似乎无法让Google帮助我解决这个问题.

这是我的情景.考虑以下类似于我需要的类:

public class Car
{
    public string Name { get; set; }
    public List Tires { get; set; }
}

public class Tire
{
    public double Pressure { get; set; }
}

我的实例将是Car类的一个对象,其中包含一个带有四个Tire对象的List.请注意,我将在列表中始终具有已知数量的对象.

现在我想将数据绑定到包含五个文本框的Form.一个带有汽车名称的文本框和一个带有每个轮胎压力的文本框.

有关如何使这项工作的任何想法?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"!



1> Cerebrus..:

您应该注意,您可以将控件绑定到实现接口的任何对象类型IList,ICollection或者IEnumerable从实现这些接口的类继承控件.通用集合也有资格进行这种绑定.

这些内部转换为IBindingList实例.

有关更多信息,请查看以下链接:

    Windowsform数据绑定路线图 - 全面了解实现和可能性,并提供各种知识链接到其他知识库文章.

    Winforms对象绑定 - Rockford Lhotka关于这个主题的文章.提供面向Windows窗体设计器的实现数据绑定的方法.

    使用Windows窗体2.0进行数据绑定 - Brian Noyes的这本书探讨了数据绑定的各个方面,包括复杂和简单的场景.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有