在我的WPF应用程序中,我有一个ComboBox,用于为AutoCompletebox选择ItemFilter。下面是代码:ComboBox SelectionChanged事件火灾晚
XAML
<ComboBox
Name="SearchFilter"
HorizontalAlignment="Right"
MinWidth="75" Margin="0,3,0,3"
SelectionChanged="SearchFilter_SelectionChanged">
<ComboBoxItem>Full-Time</ComboBoxItem>
<ComboBoxItem>Part-Time</ComboBoxItem>
<ComboBoxItem>Retired</ComboBoxItem>
<ComboBoxItem>Stockholder</ComboBoxItem>
<ComboBoxItem>Terminated</ComboBoxItem>
<ComboBoxItem>None</ComboBoxItem>
</ComboBox>
C#
private void SearchFilter_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (SearchFilter.SelectedItem != null)
{
if (SearchFilter.Text == "Full-Time")
{
EmployeeAutoBox.ItemFilter = PersonFilter_Full;
}
else if (SearchFilter.Text == "Part-Time")
{
EmployeeAutoBox.ItemFilter = PersonFilter_Part;
}
else if (SearchFilter.Text == "Retired")
{
EmployeeAutoBox.ItemFilter = PersonFilter_Ret;
}
else if (SearchFilter.Text == "Stockholder")
{
EmployeeAutoBox.ItemFilter = PersonFilter_Stock;
}
else if (SearchFilter.Text == "Terminated")
{
EmployeeAutoBox.ItemFilter = PersonFilter_Term;
}
else
{
EmployeeAutoBox.ItemFilter = PersonFilter;
}
}
}
出于某种原因,经过予改变的所选被改变正在应用的过滤器。例如,我将组合框设置为“全职”,列表筛选器未应用。然后,我将ComboBox设置为“Part-Time,全时间过滤器正在应用,然后我将ComboBox设置为”Retired“,Part Time过滤器正在应用等等等等......我已经使用了ComboBox for类似的东西之前,它通常基于目前在框中的东西,而不是在框中是什么。我在这里缺少什么?
什么在这个SelectionChanged处理程序中的'e.AddedItems'? 'SearchFilter.SelectedItem'和'SearchFilter.SelectedValue'本应该已经更新了 –