1

ComboBox.Items カウントが変更されたときに発生する適切なイベントが見つかりませんでした。そうする方法はありますか?

4

2 に答える 2

2

ComboBox ItemsSourceをObservableCollectionにバインドすると、ObservableCollectionのイベントCollectionChangedをキャッチできます。

編集:

wpfでは、UI要素のプロパティに直接アクセスする代わりにバインディングを使用することをお勧めします。もちろんMVVMを使用する方が良いですが、それがなくても生きることができます。

WindowsまたはUserControlsC#コードでは、このようなプロパティを保持できます

public ObservableCollection<string> MyCollection{get;set;}

コンストラクターで初期化します

MyCollection = new ObservableCollection<string>()
MyCollection.CollectionChanged += SomeMethod;

このようにxamlでUserControlに名前を付けるよりも

<UserControl Name="myUserControl".../>

このようにComboBoxを記述します

<ComboBox ItemsSource="{Binding ElementName=myUserControl, Path=MyCollection}"...

コンボボックス要素にアイテムを追加および削除する代わりに、MyCollectionにタムを追加すると、コンボボックスに表示されます。

お役に立てれば

于 2012-02-03T09:41:20.303 に答える
0

ComboBox.Itemsカウントが変更されたときに発生するイベントがあるとは思わないでください。アイテムを追加または削除するときに、おそらくコードを実行する必要があります。

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

End Sub

また

protected void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

}
于 2012-02-03T09:43:49.393 に答える