2012-07-31 187 views
3

我有我自己的errorprovider,不想使用任何內置的WPF東西。我有一個綁定到整數的文本框,並且我有ValidatesOnExceptions = False和ValidatesOnDataErrors = False。但是當我在文本框中輸入一個非整數時,我會看到一個紅色邊框。有什麼我失蹤?WPF ValidatesOnDataErrors =假不工作

回答

2

您有幾種選擇

  1. 你可以改變你的數據類型爲字符串,以便將你的數據時,默認的轉換器不會拋出異常。
  2. 您可以使用自定義值轉換器,不會拋出異常,當你嘗試哄一個字符串轉換成整數

    class CustomConverter : IValueConverter 
    { 
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
        { 
         return value.ToString(); 
        } 
    
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
        { 
         int x = -1; 
         Int32.TryParse(value.ToString(), out x); 
         return x; 
        } 
    } 
    
  3. 您可以更改UpdateSourceTrigger以明確和有控制權正是時候數據綁定已更新。

  4. 您可以使用Expression Blend中編輯文本框模板的本地副本,並刪除相關的綁定驗證錯誤

+0

@ Justin984所有的東西。你有類似的事情發生在這裏,這是因爲你綁定到一個int:http://stackoverflow.com/questions/8435030/how-validatesonexceptions-works – 2012-07-31 16:28:08

+0

嗯,我希望有一種簡單的方法來關閉紅色邊框,而無需編輯模板。感謝您確認我的懷疑。爲了防止某人有一個聰明的解決方案,我會把這個開放一段時間,但我猜這將是答案。 – ConditionRacer 2012-07-31 16:38:10