2011-09-29 93 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中),只需要小心地在基础类。