0

最終的にこの質問をすることを決定する前に、私はいくつかの広範な検索を行いました。シンプル、コンプレックス、およびルックアップ データ バインディングを使用するユーザー コントロールの作成に関する MSDN チュートリアルに従いました。

そして、それらはうまく機能します...単一のコンボボックスまたはグリッドビューのみを使用するユーザーコントロールに対して。

ここで、3 つの異なるコンボボックスを持つユーザー コントロールを作成したいと考えています。それぞれを別のテーブルにバインドしたい。テーブルは「名前」、「タイプ」、および「製品」です。

MSDN のチュートリアルでは、単一のコンボボックスの 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();
        }
    }
}

ご覧のとおり、コードで言及されている Combobox は 1 つだけです。上記のように、それぞれが異なるテーブルにバインドされた 3 つのコンボボックスが必要です。

お願いです、壁に頭をぶつけています。私はユーザー コントロールにあまり精通していません (ASP.NET で使用したことはありますが) が、これら 3 つのコンボボックスをさまざまな場所で一緒に使用することになるため、1 つを作成することをお勧めします。私のアプリケーション。

4

2 に答える 2

2

知っていることから、必要なものを簡単に推測できます。

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 よりもわかりやすい名前を付けたいと思うでしょう。

于 2012-05-23T17:57:21.843 に答える
1

UserControlあなたの を 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;
        // ...
    }
}
于 2012-05-23T18:02:48.007 に答える