私のWPFアプリケーションでは、AutoCompleteboxのItemFilterを選択するために使用しているComboBoxがあります。ここでコードである:いくつかの理由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;
}
}
}
Iは、選択が変更された変更後、フィルタが適用されています。たとえば、ComboBoxを「フルタイム」に設定すると、リストフィルタは適用されません。 ComboBoxを "Part-Time"に設定すると、フルタイムフィルタが適用されます。次に、 "Retired"にコンボボックスを設定し、Part Timeフィルタを適用しています。私はここに何が入っていないのですか?
そのSelectionChangedハンドラの 'e.AddedItems'には何がありますか? 'SearchFilter.SelectedItem'と' SearchFilter.SelectedValue'も同様に更新されているはずです –