从WPF菜单更改CallContext

时间:2010-11-22 12:55:29

标签: wpf .net-remoting

是否有人尝试从WPF菜单更改CallContext的内容? 在我们的应用程序中,我们有一个存储在callcontext中的环境字符串 - 在服务器上它被转换为数据库连接字符串(使用ILogicalThreadAffinative + .net远程处理)。

在客户端上可以在环境之间切换,当更改新线程/窗口具有新环境时 - 所有窗口都在窗口标题中具有环境。

问题在于,当从MenuItem完成此操作时,似乎WPF会将CallContext推送到某个堆栈上,然后将其弹回以使其无法更改。

我已经通过在菜单中插入一个组合框来解决它 - 这似乎有效但不太好。 有没有人看过这个并找到了解决方案?

1 个答案:

答案 0 :(得分:1)

我认为这是因为鼠标单击菜单项会导致将新操作发布到调度程序队列,并且调度程序队列中的操作之间不会保持CallContext。

有关详细信息,请参阅this