2010-11-22 11 views
1

誰かがWPFメニューからCallContextの内容を変更しようとしましたか? 私たちのアプリケーションでは、callcontextに環境文字列が格納されています。サーバー上では、db接続文字列(ILogicalThreadAffinative + .net remotingを使用しています)に変換されます。WPFメニューからのCallContextの変更

クライアントでは、環境を切り替えることができます。変更すると、新しいスレッド/ウィンドウに新しい環境があります。すべてのウィンドウには、ウィンドウタイトル内に環境があります。

問題は、これがMenuItemから実行されたとき、WPFがいくつかのスタックにCallContextをプッシュし、後でポップして変更できなくなっているようです。

私はメニューにコンボボックスを挿入することで解決しました。それはうまくいくようですが、それほどうまくありません。 誰かがこれを見て解決策を見つけましたか?

答えて

1

メニューアイテムをマウスでクリックすると、ディスパッチャキューに新しい操作がポストされ、ディスパッチャキューの操作間でCallContextが保持されないためです。

詳細はthisを参照してください。

+0

私はあなたが正しいと思う - 私はまた、実行コンテキストを調べた。私は、ウィンドウ内のボタンとメニュー内のコンボボックスからコールコンテキストを変更できますが、サブメニュー内の選択肢としてではなく、コールコンテキストを変更できることは矛盾しています。 callcontextの使い方はこれが意図したものだと思うので、バグかどうか疑問に思っていますか? –

+0

私は小さなサンプルを試して、コールコンテキストはボタン、コンボボックス、メニューの両方でリセットされています。 callcontextは私にとっては空ですが、あなたが見ているものよりも一貫性があります。 –

+0

私はそれをもう一度見て、私が思いつくことができるかどうかを見てみましょう - あなたがwpfからcallcontextを変更できないなら、それはいくつかの使い方を取ります。私の例では、最初からcallcontextを設定しています。問題を変更しようとしたときです。 –

関連する問題