2010-02-18 58 views
2

我有一個TextBox綁定到一個整數屬性。WPF綁定源的無效值

我能做些什麼,這樣,當有什麼在TextBox沒有有效的文本,該屬性被設置爲0。

真的,我認爲這是可以擴展的,因此如果綁定失敗,那麼我們設置源到默認(T)。

我需要在正確的方向微調。

TargetNullValue是我正在尋找(我認爲)的相反,當源爲空設置TextBox文本。我想當TextBox文本是一個無效的綁定值將源設置爲其默認值。

回答

4

應用一個Converter如下面給你的綁定應該做的伎倆:

public class TextConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, 
     object parameter, CultureInfo culture) 
    { 
     int actual = (int)value; 

     return actual.ToString(); 
    } 

    public object ConvertBack(object value, Type targetType, 
     object parameter, CultureInfo culture) 
    { 
     string actual = (string)value; 

     int theValue = 0; 
     int.TryParse(actual, out theValue); 

     return theValue; 
    } 
} 

TextBox結合會是這個樣子:

<TextBox Text="{Binding ... Converter={StaticResource convert}}"></TextBox> 

隨着定義爲一個資源轉換器你的Window/Control/...