我有一个ComboBox:
<ComboBox Name="drpRoute" SelectionChanged="drpRoute_SelectionChanged" />
我在代码后端设置了列表项:
public ClientReports()
{
InitializeComponent();
drpRoute.AddSelect(...listofcomboxitemshere....)
}
public static class ControlHelpers
{
public static ComboBox AddSelect(this ComboBox comboBox, IList<ComboBoxItem> source)
{
source.Insert(0, new ComboBoxItem { Content = " - select - "});
comboBox.ItemsSource = source;
comboBox.SelectedIndex = 0;
return comboBox;
}
}
由于某些原因,当我设置SelectedIndex
时,SelectionChanged
事件会被触发。
我该如何在不触发SelectionChanged
事件的情况下设置ItemSource
和SelectedIndex
?
虽然我是WPF新手,但这似乎不应该像看起来的那么复杂,难道我漏掉了什么吗?
SelectionChanged
事件被触发,我会根据下拉列表的选择在页面上执行一系列操作。现在发生的是,当我设置原始数据源时,由于在加载时触发了SelectionChanged
事件,所以选择逻辑被执行。 - stoiccomboBox.SelectionChanged -= drpRoute_SelectionChanged; comboBox.SelectedIndex = 0; comboBox.SelectionChanged += drpRoute_SelectionChanged;
- Viv