私はTreeView
を持っています。これはWPFアプリケーションをナビゲートする主な方法として機能します。PreviewMouseDown SelectedItemChangedイベントの傍受
ユーザーがTreeView
の新しいアイテムを選択すると、退出中のページに情報が保存されていない場合は、移動をキャンセルして現在のデータの作業を続行する/保存します。これは現在、PreviewMouseDown
イベントハンドラで発生します。
ここでyes/no/cancelオプションを指定したダイアログをスローすると、実際にはSelectedItemChanged
イベントが実際には発生しないように見えますが、別のマウスクリックが発生したためです。その結果、現在のページに留まるという選択肢が拒否されても、それは変わらない。
PreviewMouseDown
の中からイベントを再発生させる方法はありますか?SelectedItemChanged
イベントがまだ呼び出されていますか?
私が何かを逃していない限り、私は行方不明のイベントから必要な情報に終わるだろうと確信していません。 PreviewMouseDownイベントは、新しいSelectedItemが何であるかを知りません –
MouseButtonEventArgsのOriginalSourceプロパティを使用して、選択するアイテムを特定できます。 – mm8
OriginalSourcce.DataContextでIsSelectedを設定することができます。これは、データコンテキストがラベル内のテキストになるラベルをクリックしない限り、正常に動作します。そこからツリーをトラバースできますか? –