Событие срабатывает, когда счетчик ComboBox.Items изменился? - PullRequest
1 голос
/ 03 февраля 2012

Я не смог найти правильное событие, которое срабатывает, когда мой счетчик ComboBox.Items изменился. Есть ли способ сделать это?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Свяжите ComboBox ItemsSource с ObservableCollection, тогда вы можете перехватить событие CollectionChanged of ObservableCollection

EDIT:

В wpf рекомендуется использовать привязку вместо прямого доступа к свойствам элемента пользовательского интерфейса, конечно же, лучше использовать MVVM, но вы тоже можете жить без него

в вашем коде C # для Windows или UserControls вы можете сохранить свойство следующим образом

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

Инициализировать его в конструкторе

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

чем назовите свой UserControl в xaml следующим образом

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

напишите свой ComboBox следующим образом

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

теперь вместо добавления и удаления элементов в элементе со списком, добавьте их в MyCollection, они появятся в списке со списком

Надеюсь, это поможет

0 голосов
/ 03 февраля 2012

Не думайте, что при изменении 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)
{

}
...