2009-05-25 74 views
0

我有兩個tabitems。用戶將輸入一些數據並將其保存在第一個選項卡上。第二個選項卡列出保存的數據。我需要的是,當用戶選擇第二個選項卡,然後將數據保存在第一個選項卡中時,會顯示一個帶有是,否和取消的確認消息框。如果用戶單擊「是」按鈕,則應保存數據並轉到第二個選項卡。如果他點擊「否」,則不需要保存數據,最後如果點擊取消,該選項卡將保留所有輸入的數據。我怎樣才能做到這一點?在標籤之間切換的確認

回答

0

爲了保持簡單,您可以在代碼隱藏文件中執行以下操作。

我想在WPF控件中創建要顯示和編輯的數據的Model類。使模型實現接口INotifyPropertyChangedIEditableObject

INotifyPropertyChanged可以讓你綁定到模型。 IEditableObject將允許您提供編輯,保存和取消功能。

的TabControl的有SelectionChanged事件你可以處理,這將讓你當用戶更改標籤,在此處理程序,您可以使用System.Windows.MessageBox要求用戶保存等檢測,System.Windows.MessageBox.Show()返回MessageBoxResult對象,你可以用它來detirmine用戶點擊哪個按鈕並執行合適的操作。

這不是一種可以做事情的方式,但它使事情變得簡單,您可能希望查看一些WPF設計模式來幫助實現代碼管理。

如果您需要進一步解釋任何事情,只需詢問。

0

德爾福的TPageControl有一個OnChanging事件與「AllowChange」參數。我想在WPF中有類似的東西。

1

雖然我的方式不同意你打斷從選項卡用戶的流標籤我要你的幽默和回答這個問題:

你需要兩件事情來完成這件事:

  1. 當標籤被點擊
  2. 選擇,以前的標籤(你來自的那個)

我第一次發生的事件TEM:

標籤控件具有您可以訂閱點擊方法:

Click=」MyTabButton_Click」 

第二項:

這部分你就必須做手工。您可以在包含上次選擇的標籤的點擊事件中設置變量。設置完成後,您可以檢查一個變量(您之前設置的),以確定之前選擇了哪個選項卡。然後你可以做所有的驗證。