相关疑难解决方法(0)

如何强制WPF绑定刷新?

我有一个使用简单绑定附加项目源的组合框.一旦加载了组合框,有没有办法刷新这个绑定?

c# data-binding wpf

104
推荐指数
5
解决办法
11万
查看次数

确保在WPF中的UI线程上运行

我正在构建一个WPF应用程序.我正在与服务器端进行一些异步通信,我在客户端上使用Prism进行事件聚合.这两件事导致产生新的线程,而不是UI线程.如果我尝试在这些回调和事件处理程序线程上执行"WPF操作",那么世界将会崩溃,现在它已经开始了.

首先,我遇到了尝试在服务器回调中创建一些WPF对象的问题.我被告知线程需要在STA模式下运行.现在我正在尝试更新Prism事件处理程序中的一些UI数据,我被告知:

调用者无法访问此线程,因为另一个线程拥有它.

所以; 在WPF中解决问题的关键是什么?我在这篇MSDN帖子中读到了WPF Dispatcher .我开始明白了,但我还没有巫师.

  1. 当我需要运行我不确定将在UI线程上调用的东西时,总是使用Dispatcher.Invoke的关键是什么?
  2. 如果它实际上是在UI线程上调用的,它是否重要,我还是做Dispatcher.Invoke?
  3. Dispatcher.Invoke =同步.Dispathcher.BeginInvoke = async?
  4. Dispatcher.Invoke会请求UI线程,然后停止等待吗?是不良做法和风险较低的程序?
  5. 我怎样才能得到调度员?Dispatcher.CurrentDispatcher会不会给我代表UI线程的调度程序?
  6. 是否存在多个Dispatcher,或者"Dispatcher"与应用程序的UI线程基本相同?
  7. 和BackgroundWorker有什么关系?我什么时候使用它呢?我认为这总是异步的?
  8. 在UI公寓模式下运行在UI线程上运行的所有内容(通过调用)吗?即如果我有需要在STA模式下运行的东西 - Dispatcher.Invoke会足够吗?

有人想帮我清理一下吗?任何相关的建议等?谢谢!

.net wpf invoke dispatcher

36
推荐指数
1
解决办法
1万
查看次数

标签 统计

wpf ×2

.net ×1

c# ×1

data-binding ×1

dispatcher ×1

invoke ×1