Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建一个包含3个组合框的用户控件,并为每个组合框创建不同的数据绑定?_C#_Data Binding_Controls_Combobox - Fatal编程技术网

C# 如何创建一个包含3个组合框的用户控件,并为每个组合框创建不同的数据绑定?

C# 如何创建一个包含3个组合框的用户控件,并为每个组合框创建不同的数据绑定?,c#,data-binding,controls,combobox,C#,Data Binding,Controls,Combobox,在最终决定提出这个问题之前,我做了一些广泛的研究。我学习了MSDN教程,了解如何创建使用简单、复杂和查找数据绑定的用户控件 对于只使用单个组合框或Gridview的用户控件来说,它们工作得非常好 现在我想用三个不同的组合框创建一个用户控件。我想把每一张都绑在一张不同的桌子上。这些表是“名称”、“类型”和“产品” MSDN教程涉及为单个组合框创建DataBindingProperties,但没有说明如何为包含多个组合框的用户控件创建DataBindingProperties using

在最终决定提出这个问题之前,我做了一些广泛的研究。我学习了MSDN教程,了解如何创建使用简单、复杂和查找数据绑定的用户控件

对于只使用单个组合框或Gridview的用户控件来说,它们工作得非常好

现在我想用三个不同的组合框创建一个用户控件。我想把每一张都绑在一张不同的桌子上。这些表是“名称”、“类型”和“产品”

MSDN教程涉及为单个组合框创建DataBindingProperties,但没有说明如何为包含多个组合框的用户控件创建DataBindingProperties

using System.Windows.Forms;
namespace CS
{
    [System.ComponentModel.LookupBindingProperties(
       "DataSource", "DisplayMember", "ValueMember", "LookupMember")]
    public partial class LookupBox : UserControl
    {
        public object DataSource
        {
            get{ return comboBox1.DataSource; }
            set{ comboBox1.DataSource = value; }
        }

        public string DisplayMember
        {
            get{ return comboBox1.DisplayMember; }
            set{ comboBox1.DisplayMember = value; }
        }

        public string ValueMember
        {
            get{ return comboBox1.ValueMember; }
            set{ comboBox1.ValueMember = value; }
        }

        public string LookupMember
        {
            get{ return comboBox1.SelectedValue.ToString(); }
            set{ comboBox1.SelectedValue = value; }
        }

        public LookupBox()
        {
            InitializeComponent();
        }
    }
}
现在,正如您所看到的,代码中只提到了一个组合框。我需要有三个组合框,每个组合框绑定到一个不同的表,如上所述


拜托,我的头撞到墙上了。我不太熟悉用户控件(虽然我在ASP.NET中使用过它们),但制作一个似乎是个好主意,因为我将在我的应用程序中的不同位置大量使用这三个组合框。

你可以简单地推断出你所知道的和你所需要的:

public object DataSource1
{
    get{ return comboBox1.DataSource; }
    set{ comboBox1.DataSource = value; }
}
public object DataSource2
{
    get{ return comboBox2.DataSource; }
    set{ comboBox2.DataSource = value; }
}
public object DataSource3
{
    get{ return comboBox3.DataSource; }
    set{ comboBox3.DataSource = value; }
}

尽管您可能希望使用比..1、..2、..3更好的描述性名称。

您可以简单地根据需要推断您所知道的内容:

public object DataSource1
{
    get{ return comboBox1.DataSource; }
    set{ comboBox1.DataSource = value; }
}
public object DataSource2
{
    get{ return comboBox2.DataSource; }
    set{ comboBox2.DataSource = value; }
}
public object DataSource3
{
    get{ return comboBox3.DataSource; }
    set{ comboBox3.DataSource = value; }
}

虽然您可能希望生成比..1,..2,..3更好的描述性名称。

我将创建一个
用户控件,其中包含三个
LookupBox
。例如:

public partial class MyLookupBoxes : UserControl
{
    public LookupBox()
    {
        // Add the 3 LookupBox to this UserControl using the designer
        InitializeComponent();
        SetupDataSources();
    }

    private void SetupDataSources()
    {
        namesLookupBox1.DataSource = names_data_source_1;
        // ...
        typesLookupBox2.DataSource = types_data_srouce_2;
        // ...
        productsLookupBox3.DataSource = products_data_srouce_2;
        // ...
    }
}

我将创建一个
UserControl
,其中包含三个
LookupBox
。例如:

public partial class MyLookupBoxes : UserControl
{
    public LookupBox()
    {
        // Add the 3 LookupBox to this UserControl using the designer
        InitializeComponent();
        SetupDataSources();
    }

    private void SetupDataSources()
    {
        namesLookupBox1.DataSource = names_data_source_1;
        // ...
        typesLookupBox2.DataSource = types_data_srouce_2;
        // ...
        productsLookupBox3.DataSource = products_data_srouce_2;
        // ...
    }
}

事实上,这正是我计划要做的。这三个查找框将是单个用户控件(称为“描述”)的一部分,该用户控件将添加到其他几个用户控件中。所以它基本上是一个用户控件,在另一个用户控件内,在另一个用户控件内。谢谢你的回答。您的代码对我来说很有意义,但我很好奇下一个用户控件(将包含此控件)的代码是什么样子的。我的意思是,如果我有三个嵌套控件,我每次都要挖掘三层吗?实际上,这正是我计划要做的。这三个查找框将是单个用户控件(称为“描述”)的一部分,该用户控件将添加到其他几个用户控件中。所以它基本上是一个用户控件,在另一个用户控件内,在另一个用户控件内。谢谢你的回答。您的代码对我来说很有意义,但我很好奇下一个用户控件(将包含此控件)的代码是什么样子的。我的意思是,如果我有三个嵌套控件,我每次都要挖三层深吗?