如何覆蓋文本框中的文本屬性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不要使用這種方式。 –