2012-03-12 18 views
1

ユーザーが別のタブ項目に切り替えるたびに別のTabItemにデータを保存する必要があります。TabControl選択したタブ項目の保存を変更しました

私はTabControl.SelectionChangedイベントを操作しようとしましたが、以前に選択したタブ項目に関する情報はありません。

これで、ユーザーがTabItemから別のTabItemに切り替えるときの瞬間を得る方法はありますか?

+0

選択解除イベントを使用して、e.TabPageは、あなたが探しているの参照を提供します。またはキャンセルする理由がある場合は選択を解除します。 –

+0

WPFの 'TabControl'は、可能であれば' TabItem'テンプレートを再利用するので、実際のコントロールは変更されませんが、コントロールの背後にある 'DataContext'は変更されます。タブを切り替えるときにコントロールに保存されているデータを保存する場合は、それを何かにバインドする必要があります。 – Rachel

答えて

1

あなたは最後のタブ

private TabPage LastTab = null; 

private void tabSelectionChanged(...) 
{ 
    if(LastTab != null) 
    //Do save 

    LastTab = tab.SelectedTabPage;// or equivalent 
} 
0

は、以下のコードを使用しているものを保存するために、グローバル変数を作ることができます:ここでは、コンテンツが型オブジェクトのものであろうあなたがキャストを入力することができます

private object LastTab = null; 

private void tabSelectionChanged(...) 
{ 
    if(LastTab != null) 
    { 
    //Do save 
    } 

    LastTab = control.SelectedContent; 
} 

3

個々のタブのEnterイベントとLeaveイベントを使用します。コードの起動時にEnterイベントを起動する必要がある場合は、選択したタブをプログラム時にデザイン時と異なるものに変更する必要があります。あなたが必要なもの

+0

これはひどく原油のハックで、何があっても避けるべきです。 – mafu

0

がパラメータSelectionChangedEventArgs eに存在する:

  • e.AddedItems
  • e.RemovedItems
関連する問題