2016-08-11 71 views
0

當應該綁定的類型不匹配時,WPF拋出什麼樣的異常?例如,如果我將TextBoxText屬性綁定到integer屬性,並在文本字段中鍵入某個字母(例如:abc)?當綁定類型不匹配時WPF異常

+0

看看你的輸出窗口 – blindmeis

回答

0

您對「驗證」有興趣。我相信,有一個默認驗證,它將綁定到文本等整數應該自動觸發。

默認情況下,它突出顯示紅色矩形中的文本框並顯示錯誤消息。它也關鍵不會更新源屬性。

您可以添加自定義數據驗證消息(以及其他條件)。要做到這一點添加ValidatesOnDataErrors="True"到你的綁定:

<TextBox Text="{Binding MyInteger, ValidatesOnDataErrors=True}" Width="100" Margin="20"/> 

,讓您的數據上下文繼承IDataErrorInfo和實施類似如下:

public string Error 
    { 
     get 
     { 
      return string.Empty; 
     } 
    } 

    public string this[string columnName] 
    { 
     get 
     { 
      if (columnName == "MyInteger") 
      { 
       if (MyInteger < 0) 
       { 
        return "Must be an integer greater than 0!"; 
       } 
      } 
      return ""; 
     } 
    } 
相關問題