动态填充WPF ComboBox并单击它后,我遇到短暂的延迟(3-5秒)。在我们的项目中,这是不可接受的。
如何动态修改组合框项目而不会在之后产生下拉冻结?
我使用的是.NET 2.0,无法升级。
我尝试过使用ItemSource绑定和Dispatcher解耦,但这没有帮助。当通过键盘键入ComboBox时,没有延迟(在这种情况下,DropDown列表不会显示)。
这是一个最小的工作示例。要重现延迟,
XAML
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<ComboBox Grid.Row="0" Name="comboBox"/>
<Button Grid.Row="1" Click="button_Click">Add Items</Button>
</Grid>
C#
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
comboBox.Items.Clear();
comboBox.Items.Add("Item 1");
comboBox.Items.Add("Item 2");
comboBox.Items.Add("Item 3");
}
}