如何覆盖文本框中的文本属性WPF?覆盖文本框的文本属性
我想在WPF验证码:
public override string Text
{
get { return Text.Replace(",", ""); }
set { Text = value; }
}
如何覆盖文本框中的文本属性WPF?覆盖文本框的文本属性
我想在WPF验证码:
public override string Text
{
get { return Text.Replace(",", ""); }
set { Text = value; }
}
文本是一个依赖属性。如果您已经从文本框派生的类,那么你需要重写的元数据,并提供您的验证回调
见
你只是缺少文本参数?
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}" />
...其中静态资源被定义为...
<Window.Resources>
<CommaReplaceConverter x:Key="CRC"/>
</Windows.Resources>
虽然upvoted的答案是正确的,但有一种更简单的方法:由于TextBox的Text属性绑定到基础类的属性(通常在Viewmodel中),只需要小心地在基础类。
不,我想覆盖文本属性,但在wpf不要使用这种方式。 –