2017-06-21 5 views
-1

WPFアプリケーションでは、ListBoxを持ち、Sqlのデータにバインドされています。また、リストボックスにスタックパネルがあります。ListBoxのSelectedIndexでの動的コンボボックス

一度、リストボックスの項目をダブルクリックします。ここでは、動的コンボボックスを配置/追加する必要があります。

ListBoxの選択されたインデックスを取得できます。

int seleteditem = lstbxusername.SelectedIndex; 

と私は私の質問は、リストボックスの選択されたインデックスでの動的なコンボボックスを追加する方法であるコンボボックス

 newstckpnl.Children.Add(cmb); 

を追加するのStackPanelを使用し

System.Windows.Controls.ComboBox cmb = new ComboBox(); 
      cmb.Background = Brushes.Green; 

ダイナミックコンボボックスを作成しました。

これは可能なのですか?

+0

でそれを追加についてをお読みくださいMVVM。バインディングを介して 'ItemsSource'を設定した場合、コードの背後にある' ItemsControl'(あなたの場合は 'ListBox')の' Items'コレクションにアイテムを手動で追加すべきではありません。 'ItemsSource'を' ObservableCollection 'にバインドし、ビューモデルでこのコレクションに文字列を追加する必要があります。 – Maxim

+0

また、 'ItemsSource'を何にバインドしますか? – Maxim

+1

_I得点= {0,0,0,0} _そして何が問題なのですか?あなたはあなたの問題をよりよく説明するなら、ずっと前に答え​​を得ることができます。今では、あなたの問題を明確にするために多くの質問を人々に要求しなければなりません。 – Maxim

答えて

0

もちろん可能です。以下に示すように、最初にListBoxからListBoxItemを取得するだけです。

var listBox = new ListBox(); 
var listBoxItem = listBox.SelectedItem as ListBoxItem; 
var listBoxItemMargin = listBoxItem.Margin; 

現在、ListBoxに文字列を追加しています。文字列には余白がありません。上記のコードを動作させるには、下記のようにListBoxItemsListBoxに追加する必要があります。

listBox.Items.Add(new ListBoxItem {Content = dr.GetString(1) }); 
+0

'var listBoxItem = ListBox.SelectedItem as ListBoxItem; 'この領域にはnull値があります。それはseleteditemを取得しません。 – User6667769

+0

'SelectedItem'は、' ItemsSource'が 'ListBox'を取り込むために使用される場合のアイテムビューモデルを表します。 Itemのコンテナを取得し、そのMarginを取得するには、 'ListBox'の' ItemContainerGenerator'を使用する必要があります。 – Maxim

+0

@ User6667769 'Listbox'にアイテムを追加する方法を教えてください。そうすれば、なぜこれがあなたの問題を引き起こしているのか分かります。 – Ralt

0

私はいくつかのことをしました、私のために働いた!!

私はコンボボックスオブジェクトを使用して、リストボックス

int seleteditem = lstbxusername.SelectedIndex; 

そして、作成したコンボボックス

System.Windows.Controls.ComboBox cmb = new ComboBox(); 

の選択されたインデックスを取得し、私は、リストボックス選択されたインデックス

lstbxusername.Items.Insert(seleteditem, cmb); 
関連する問題