”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么我收到“这种类型的 CollectionView 不支持从与 Dispatcher 线程不同的线程更改其 SourceCollection”?

为什么我收到“这种类型的 CollectionView 不支持从与 Dispatcher 线程不同的线程更改其 SourceCollection”?

发布于2024-11-04
浏览:103

Why Am I Getting \

错误处理:“这种类型的 CollectionView 不支持从与 Dispatcher 线程不同的线程更改其 SourceCollection”

给定的错误消息,“这种类型CollectionView 不支持从与 Dispatcher 线程不同的线程更改其 SourceCollection”,表示尝试从非 UI 修改 ObservableCollection thread.

如提供的代码中所述,ViewModel 的 Load() 方法从 GetMatchDetailsDC 对象列表填充 _matchObsCollection ObservableCollection。但是,此更新是在 UI 线程之外执行的。

线程关联性和 Dispatcher

在 WPF 中,UI 元素(例如 DataGrid)是在 UI 线程上创建的,并维护一个线程亲和力。对这些元素的任何修改都必须从 UI 线程执行,以确保线程安全。

解决错误

要解决此问题,您可以使用 App.Current.Dispatcher.Invoke(( Action)delegate { ... }) 方法在 UI 线程上调用集合更新:

matchList = proxy.GetMatch().ToList();

foreach (EfesBet.DataContract.GetMatchDetailsDC match in matchList)
{
    App.Current.Dispatcher.Invoke((Action)delegate  // 

WPF 中的异步数据加载

虽然使用异步方法加载数据很常见,但从非 UI 线程操作 UI 元素时考虑线程安全非常重要。始终确保对 UI 元素的任何更新(例如修改 ObservableCollection)都在 UI 线程上执行,以避免与线程相关的错误。

最新教程 更多>
  • 如何在Java字符串中有效替换多个子字符串?
    如何在Java字符串中有效替换多个子字符串?
    在java 中有效地替换多个substring,需要在需要替换一个字符串中的多个substring的情况下,很容易求助于重复应用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    编程 发布于2025-03-12
  • 如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    postgresql:为每个唯一标识符在postgresql中提取最后一行,您可能需要遇到与数据集合中每个不同标识的信息相关的信息。考虑以下数据:[ 1 2014-02-01 kjkj 在数据集中的每个唯一ID中检索最后一行的信息,您可以在操作员上使用Postgres的有效效率: id dat...
    编程 发布于2025-03-12
  • PHP阵列键值异常:了解07和08的好奇情况
    PHP阵列键值异常:了解07和08的好奇情况
    PHP数组键值问题,使用07&08 在给定数月的数组中,键值07和08呈现令人困惑的行为时,就会出现一个不寻常的问题。运行print_r($月份)返回意外结果:键“ 07”丢失,而键“ 08”分配给了9月的值。此问题源于PHP对领先零的解释。当一个数字带有0(例如07或08)的前缀时,PHP将...
    编程 发布于2025-03-12
  • Python命名元组详解:对比普通元组的优势
    Python命名元组详解:对比普通元组的优势
    命名的元组是轻量级且易于创建的对象类型,可通过提供命名属性来增强该元素的可用性。让我们深入研究其用法和与常规元素的比较。的创建和命名元组的用法创建命名元组,我们使用collections.namedtuple Factory函数。例如,为要点定义一个命名元组:可以像常规元组一样创建此名称元组的实例...
    编程 发布于2025-03-12
  • 哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    编程 发布于2025-03-12
  • VS Code & Delve 调试Go代码:Build Tags配置指南
    VS Code & Delve 调试Go代码:Build Tags配置指南
    在Visual Studio Code中使用标签进行调试,并在使用构建标签来编译GO程序的各种版本时,请在delve debugger 中使用,这对于配置DEBUGGER以配置最佳debugger以进行最佳利用。标签:在Visual Studio Code的GO插件中指定构建标签,您可以使用bui...
    编程 发布于2025-03-12
  • 如何在JavaScript对象中动态设置键?
    如何在JavaScript对象中动态设置键?
    在尝试为JavaScript对象创建动态键时,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正确的方法采用方括号: jsobj ['key''i] ='example'1; 在JavaScript中,数组是一...
    编程 发布于2025-03-12
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-03-12
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-03-12
  • 为什么不使用CSS`content'属性显示图像?
    为什么不使用CSS`content'属性显示图像?
    在Firefox extemers属性为某些图像很大,&& && && &&华倍华倍[华氏华倍华氏度]很少见,却是某些浏览属性很少,尤其是特定于Firefox的某些浏览器未能在使用内容属性引用时未能显示图像的情况。这可以在提供的CSS类中看到:。googlepic { 内容:url(&#...
    编程 发布于2025-03-12
  • 为什么我会收到MySQL错误#1089:错误的前缀密钥?
    为什么我会收到MySQL错误#1089:错误的前缀密钥?
    mySQL错误#1089:错误的前缀键错误descript [#1089-不正确的前缀键在尝试在表中创建一个prefix键时会出现。前缀键旨在索引字符串列的特定前缀长度长度,可以更快地搜索这些前缀。了解prefix keys `这将在整个Movie_ID列上创建标准主键。主密钥对于唯一识别...
    编程 发布于2025-03-12
  • \“(1)vs.(;;):编译器优化是否消除了性能差异?\”
    \“(1)vs.(;;):编译器优化是否消除了性能差异?\”
    答案: 在大多数现代编译器中,while(1)和(1)和(;;)之间没有性能差异。编译器: perl: 1 输入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    编程 发布于2025-03-12
  • 为什么PYTZ最初显示出意外的时区偏移?
    为什么PYTZ最初显示出意外的时区偏移?
    与pytz 最初从pytz获得特定的偏移。例如,亚洲/hong_kong最初显示一个七个小时37分钟的偏移: 差异源利用本地化将时区分配给日期,使用了适当的时区名称和偏移量。但是,直接使用DateTime构造器分配时区不允许进行正确的调整。 example pytz.timezone(...
    编程 发布于2025-03-12
  • Laravel要去:我的旅程和纤维API样板的创建
    Laravel要去:我的旅程和纤维API样板的创建
    花费四年以上,我对MVC(Model-View-Controller)架构非常熟悉。它的简单性和结构使与之合作变得很高兴,而Laravel的有条理的文件夹可帮助开发人员保持正轨。您始终知道将代码放置在哪里,以及广泛的内置工具 - 数据库连接,redis,排队,迁移,ORM等等 - 将设置无缝。只需...
    编程 发布于2025-03-12
  • 如何使用替换指令在GO MOD中解析模块路径差异?
    如何使用替换指令在GO MOD中解析模块路径差异?
    在使用GO MOD时,在GO MOD 中克服模块路径差异时,可能会遇到冲突,其中可能会遇到一个冲突,其中3派对软件包将另一个带有导入套件的path package the Imptioned package the Imptioned package the Imported tocted pac...
    编程 发布于2025-03-12

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3