当我的ComboBox.Items计数发生变化时,我找不到正确的事件。有没有办法这样做?
答案 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)
{
}