有人尝试过从WPF菜单中更改CallContext的内容吗?在我们的应用程序中,我们有一个存储在callcontext中的环境字符串-在服务器上,它被转换为一个数据库连接字符串(使用ILogicalThreadAffinative + .net remoting)。
在客户端上,可以在不同的环境之间切换,当改变时,新的线程/窗口具有新的环境-所有窗口的窗口标题中都有环境。
问题是,当这是从MenuItem完成时,似乎WPF会将CallContext推送到某个堆栈上,然后将其弹出,从而使其无法更改。
我已经通过在菜单中插入一个组合框解决了这个问题--这看起来很管用,但并不是很好。有没有人看到这一点并找到了解决方案?
发布于 2010-11-22 21:43:07
我认为发生这种情况是因为在菜单项上单击鼠标会导致将新操作发送到dispatcher队列,而CallContext不会在dispatcher队列中的操作之间持久化。
有关详细信息,请参阅this。
https://stackoverflow.com/questions/4245599
复制相似问题