gpt4 book ai didi

c# - 组合框在使用触摸界面访问时会导致应用程序崩溃,但可以使用鼠标

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:24 25 4
gpt4 key购买 nike

我有一个显示数据库存储库列表的组合框,我拥有的唯一事件是 DropDownOpened 事件,在此期间我访问数据库以获取要显示的项目列表。

使用鼠标打开组合框并选择一个项目一切正常,但是当我使用触摸屏(Windows 8 或 Surface)时出现问题。

我第一次打开组合框并选择一个没有问题,但在我选择一个项目后,如果我再次尝试打开列表,应用程序会崩溃。

这是组合框的 xaml:

    <ComboBox x:Name="RepositoryComboBox" Grid.Row="3" Grid.Column="1"  SelectedItem="{Binding SelectedRepository, Mode=TwoWay}" ItemsSource="{Binding RepositoryList, Mode=TwoWay}" 
Style="{StaticResource ComboBoxStyle}" IsEnabled="True" DropDownOpened="ReposDrop"/>

以及下拉打开事件的代码:

    private async void ReposDrop(object sender, object e)
{

ViewModel.RepositoryList = null;
try
{
await ViewModel.GetRepositories(); //accesses database through a WCF service
}
catch (Exception)
{
return;
}

}

关于可能导致此问题的原因有什么想法吗?

编辑 这是我遇到的错误

    Exception   {"Error HRESULT E_FAIL has been returned from a call to a COM component."}

最佳答案

您的 ViewModel.GetRepositories() 调用可能会在后台线程上更新列表内容。如果你不调用它,检查它是否仍然崩溃。您也可以尝试延迟通话,例如使用 await Task.Delay(100) 以防 ComboBox 在打开时不喜欢其内容更新。

关于c# - 组合框在使用触摸界面访问时会导致应用程序崩溃,但可以使用鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17971691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com