C# 重写textbox的文本属性
如何在中重写textbox中的text属性 我想要WPF中的代码:C# 重写textbox的文本属性,c#,.net,wpf,C#,.net,Wpf,如何在中重写textbox中的text属性 我想要WPF中的代码: public override string Text { get { return Text.Replace(",", ""); } set { Text = value; } } 文本是一个依赖属性。如果您从TextBox派生了一个类,那么您需要重写元数据并提供验证回调 看 您刚才错过了文本参数 public override string Text {
public override string Text
{
get { return Text.Replace(",", ""); }
set { Text = value; }
}
文本是一个依赖属性。如果您从TextBox派生了一个类,那么您需要重写元数据并提供验证回调 看
public override string Text
{
get { return Text.Replace(",", Text); }
set { Text = value; }
}
如果您是针对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}" />
数据绑定是这样的
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>
虽然向上投票的答案是正确的,但有一种更简单的方法:由于TextBox的Text属性绑定到基础类的属性(通常在Viewmodel中),只需注意在基础类中提供替换项。否,我希望覆盖Text属性,但在wpf中不使用这种方法。