2016-08-18 9 views
0

一部のコントロールにデータをバインドする方法を理解するのに問題があります。ComboBoxのセレクションアイテムに基づいて、コントロールをデータにバインドする方法は?

下の画像から、私は私が編集可能にするリストにn個オブジェクトがありますが、私は、コントロールのN量を望んでいません。コンボボックスからどのオブジェクトを選択したいのですか?コントロールの1つのセットを再利用できるようにします。

私はコンボボックスにデータをバインドし、グリッドビューにバインドされたデータを「簡単」にしました。 ただし、私のnumericalUpDownにはDataSourceのメンバーがありません。

どうすればバインドできますか?

comboBox1_SelectedIndexChanged()が呼び出されたときにバインドを変更しますか?そうでない場合、これを行う良い方法は何ですか?

ありがとうございました。

enter image description here

+0

は、コンボボックスWinforms' – MethodMan

+0

申し訳バディにどのように 'バインドデータへの迅速なGoogle検索を行うには、私はコンボ形態に結合していると述べ、私はそれが簡単だったと述べました。 – zljepwqp

+1

あなたの 'NumericUpDown'コントロールに' DataSource'は必要ありません。デザイナやコードを使用して、 'DataBindings'コレクションにバインディングを追加する必要があります。 –

答えて

0

私はこれが最善かneatest方法であるかどうかわからないのですが、それは間違いなく動作し、私は必要なものを私に与えます。

私は、選択されたオブジェクトが変更にバインドされているときに、いつでもバインディングをクリアする必要があると思います。

以下のコードは、既存のバインディングをすべて消去し、コントロールのTextプロパティをオブジェクトのXposの値にバインドして、コントロールを選択したデータオブジェクトにバインドします。

コンボボックスのインデックス値を取得し、それを使用してリスト内のオブジェクトにアクセスします。 comboBox1_SelectedIndexChanged

int index = comboBox1.SelectedIndex; 

pos_xUpDown.DataBindings.Clear(); 
pos_xUpDown.DataBindings.Add("Text", objectlist[index], "Xpos"); 

pos_yUpDown.DataBindings.Clear(); 
pos_yUpDown.DataBindings.Add("Text", objectlist[index], "Ypos"); 

pos_zUpDown.DataBindings.Clear(); 
pos_zUpDown.DataBindings.Add("Text", objectlist[index], "Zpos"); 
関連する問題