2016-07-07 26 views
-2

我真的很難確定WPF組合框的工作方式。網上有很多例子,但似乎沒有一個例子經常出現,這是一個帶有ComboBox和Save/Cancel按鈕的表單,如下所述。WPF對話框取消 - 常見場景

我所要做的就是在一個帶有單個ComboBox的WPF窗體中使用2個字符串,例如「A」和「B」。和2個按鈕保存並取消。

取消按鈕點擊,新選定的值將被忽略。例如,如果打開表單時,ComboBox顯示值「A」,則當用戶將選擇更改爲「B」並單擊取消時,重新打開表單將顯示「A」。

保存按鈕點擊,選定的值將被保存。例如,打開表單時,組合框顯示值「A」,用戶選擇「B」並點擊保存,然後重新打開表單將顯示「B」。

我還沒有提供任何代碼,因爲我沒有。我只是想找到一個涵蓋此場景的示例/教程供我學習。

更新 WPF,MVVM(或不,不管)。我所看到的是一個覆蓋這種情況的良好鏈接。我發現的只是極簡主義,只是在形式上顯示組合。或者另一個版本是a)選擇新的價值,b)得到提示確認你確實要選擇它(不用說,那只是愚蠢的)。 感覺這種常見情況很奇怪。

+0

因此,你可以將零件綁定數據到組合框和選定的項目嗎?除非它被保存,否則只有在「撤銷」選擇時才提出問題?還是兩者兼而有之? – Lapious

+0

MVVM與否?不介意嗎? – Jai

+1

此網站最適合提出更具針對性的問題,例如「我正在嘗試** x **,並且遇到此問題** y **」等等。 – code4life

回答

1

不確定爲什麼你在這裏看到問題。唯一可能的最大問題可能是因爲你認爲控制能夠像你想象的那樣工作(沒有你做任何事情) - 你需要投入努力,使其行爲像你所需要的。

每次關閉表單時,都會丟棄它的一個實例。同樣,當你打開表單時,你正在創建一個新的實例。由於它是一個全新的實例,那麼它就像第一次打開它一樣,顯示它所做的事情是否合理?

如果您需要在關閉和打開之間持續存在的信息,那麼它就像將其存儲在某個不會被破壞的地方一樣簡單。

對於「保存」按鈕的Click事件處理程序,將組合框中的值複製到其他地方,可能是存儲庫,某個靜態單例或mainwindow。

// e.g. static singleton 
MySingletonStorage.Instance.ComboBoxValue = myComboBox.Text; 

然後在窗體的構造函數中,只需從存儲中取回數值即可。

myComboBox.Text = MySingletonStorage.Instance.ComboBoxValue;