私は、2Dチャート上のファイルからデータをプロットするWPFアプリケーションを開発しました。 ユーザーは、マウスを使用してズームおよびパンすることができます。 複数の図面をWPF TabControlの異なるタブに読み込むことができます。描画自体は、TabItem内のグリッドによって保持されます。WPF TabControlの選択されたTabItemへのイベントの再接続
ファイルを読み込んで対応するチャートを生成するたびに、チャートを保持するグリッドにマウスイベントを接続しています。
マウスイベントが最後にロードされたチャートに接続され、他のTabItemを選択すると、コントロール(ズーム/パン)が表示されません。
私は戻ってきたTabItemのグリッドにマウスイベントを再接続する方法が見つかりませんでした。
私はどんな手がかりもありがとう。
モティ
問題は、誰にイベントを再接続するかわからないことです。私はイベントハンドラを切断しませんが、(新鮮なTabItem内の)他のイベントにそれらを接続すると直前のものから切り離します。 – user1370434
問題を再現できません。 WpfApplicationを作成し、コンテンツにボタンとTabControlを配置し、Click EventHandlerでボタンを配線し、Click EventHandler内でグリッドを作成し、Grid.MouseWheelイベントをEventHandlerに配線し、GridをTabControlに追加して表示しましたDebug.WriteLine MouseWheel EventHandler内のデバッグコード。私は新しいTabItemsを追加して、さらにTabItemに戻っている場合、それは動作します。 – csteinmueller
あなたのアプリケーションが同じ条件を再現するかどうかはわかりません。私の場合、TabControlがあります。各TabItemで、私はグリッドを定義し、それにMouseイベントを接続します。新しく作成されたすべてのTabItemは、イベントにうまく反応します(グリッド内のグラフを拡大/縮小する)。しかし、既に存在するTabItemを選択すると、イベントが切断されていることがわかりました。イベントは定義された最後のTabItemにのみ接続されます。 – user1370434