2012-04-18 48 views
0

(使用WPF應用程序) 情況是這樣的:取消複選框檢查,當輸入不corret

有3個用戶輸入字段。 1小時,1分鐘,1秒。 它背後是一個「時間分成一半」的複選框,它除了將用戶輸入創建的時間跨度分成一半以外,沒有其他任何作用。

但是當複選框被選中時,如果用戶在字段中輸入任何數字,我首先檢查代碼:小時/分鐘/秒。 如果全部都是0,則會彈出一個消息框,告訴用戶他需要放入東西。 但在這一點上,我想「取消」複選框的檢查。

我應該使用一些東西作爲e.Cancel什麼的? 或者我應該將IsChecked設置爲與消息框一起返回false?

林不知道笏正確的處理方式是。

回答

4

我認爲你的方法是錯誤的。 只有當輸入有效時,該複選框纔會啓用。 您可以在文本框上設置LostFocus事件,並在該事件中檢查所有輸入值。 如果輸入正確,然後啓用複選框,否則禁用它。無需取消點擊複選框的勾選

+0

還沒有想到這種方法。尼斯提示:) – Dante1986 2012-04-18 12:27:48

+0

+1,對於類似的答案很抱歉 – Gabber 2012-04-18 12:33:50

1

該動作有兩個步驟的行爲:

  • 驗證時間
  • 一半

除以如果你想保持這些在獨特的操作中的兩個步驟檢查複選框的動作實際上觸發事件,執行驗證步驟,然後您取消選中它。我認爲從這個角度來看,將checkbox.IsChecked設置爲false更爲正確。

正如史蒂夫指出的,我將驗證步驟與操作分開。當輸入無效時在文本框的TextChanged事件上放置檢查功能,請禁用複選框。如果一切正常,您可以啓用CheckBox。如果沒有禁用它並取消選中它,如果它被選中。

相關問題