1

私は以下のようなクラスを持っています:

class villages { public string name; public int pId; }

私はこのように私の形でそれを使用します:

private villages[] centerVillage=new villages[]{
        new villages{name= "village1",pId=0},
        new villages{name= "village2",pId=1},
        new villages{name= "village3",pId=2},
        new villages{name= "village4",pId=3},
        new villages{name= "village5",pId=4},
        new villages{name= "village6",pId=5},
        new villages{name= "village7",pId=6},
    };

今、私はそれcombobox1から私のものを埋めたいですvillages[]DisplayMember=namevalueMember=pId

私はすでにこれを試しましたが、うまくいきません。

combobox1.DataSource = new BindingSource(centerVillage, null);
combobox1.DisplayMember = "name";
combobox1.ValueMember = "pId";
4

2 に答える 2

4

Villages クラスでは、値を公開するためにプロパティを定義する必要があります。フィールド メンバーでは機能しません。

    // Exceptions:
    //   System.ArgumentException:
    //     The specified property cannot be found on the object specified by the System.Windows.Forms.ListControl.DataSource
    //     property.
    public string ValueMember { get; set; }

これで問題は解決します。

    class villages
    {
        public string name { get; set; }
        public int pId { get; set; }
    }
于 2013-07-27T18:59:34.283 に答える
1
combobox1.DataSource = villages;
combobox.DisplayMember = "name";
combobox1.ValueMember = "pId";
于 2013-07-27T18:50:44.217 に答える