ComboBox.Items计数发生变化时触发事件?

时间:2012-02-03 09:31:43

标签: wpf events combobox count items

当我的ComboBox.Items计数发生变化时,我找不到正确的事件。有没有办法这样做?

2 个答案:

答案 0 :(得分:2)

将ComboBox ItemsSource绑定到ObservableCollection,然后可以捕获ObservableCollection的事件CollectionChanged

编辑:

在wpf中,建议使用绑定而不是直接访问UI元素属性,当然最好使用MVVM,但你也可以没有它

在您的Windows或UserControls C#代码中,您可以保留这样的属性

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,它们将出现在组合框中

希望这有帮助

答案 1 :(得分:0)

当ComboBox.Items计数发生变化时,不要认为有任何事件要触发。您可能应该在添加或删除项目时执行代码。

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

End Sub

OR

protected void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

}