WPF ComboBox下拉冻结

时间:2017-09-19 08:17:29

标签: c# wpf xaml combobox .net-2.0

动态填充WPF ComboBox并单击它后,我遇到短暂的延迟(3-5秒)。在我们的项目中,这是不可接受的。

如何动态修改组合框项目而不会在之后产生下拉冻结?

我使用的是.NET 2.0,无法升级。

我尝试过使用ItemSource绑定和Dispatcher解耦,但这没有帮助。当通过键盘键入ComboBox时,没有延迟(在这种情况下,DropDown列表不会显示)。

这是一个最小的工作示例。要重现延迟,

  1. 单击按钮,然后单击ComboBox
  2. 再次这样做
  3. 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");
        }
    }
    

0 个答案:

没有答案