2011-09-29 413 views

回答

-1

你只是缺少文本參數?

public override string Text 
    { 
     get { return Text.Replace(",", Text); } 
     set { Text = value; } 
    } 
+0

不,我想覆蓋文本屬性,但在wpf不要使用這種方式。 –

3

如果數據對TextBox.Text屬性綁定然後另一個可能的方法是將邏輯從控制自身離開,並將其放置在一個轉換器。你的轉換器可以是這個樣子......

public class CommaReplaceConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, 
          object parameter, CultureInfo culture) 
    { 
     return value; 
    } 

    public object ConvertBack(object value, Type targetType, 
           object parameter, CultureInfo culture) 
    { 
     return value.ToString().Replace(",", ""); 
    } 
} 

和數據綁定這樣的事情...

<TextBox Text="{Binding XXX, Converter={StaticResource CRC}" /> 

...其中靜態資源被定義爲...

<Window.Resources> 
    <CommaReplaceConverter x:Key="CRC"/> 
</Windows.Resources> 
0

雖然upvoted的答案是正確的,但有一種更簡單的方法:由於TextBox的Text屬性綁定到基礎類的屬性(通常在Viewmodel中),只需要小心地在基礎類。