我正在使用Telerik的RadMaskedTextBox,並且我正在嘗試創建一個Mask,以便它將遵循加拿大郵政編碼模板。MaskedTextBox強制UpperCase字符
模板是遵循字母編號字母編號字母數
例郵政編碼T4R1U8
此刻我的面具是Mask="L#L #L#"
但允許大寫和小寫字母。我試圖讓它可以輸入大寫字母,小寫字母可以輸入,但小寫字母會立即變爲上限。
我已經嘗試了兩種解決方案,它們非常接近,但不是最終的解決方案。
第一個是解決這個在視圖模型側
public string PostalCode
{
get {return postalCode;}
set
{
postalCode = value;
postalCode = postalCode.ToUpper();
OnPropertyChanged("PostalCode");
}
}
這種方法,這些值將改變爲上,但打字索引移動到MaskTextBox的前面,而不是被輸入的字符之後總是保持。
我採取的第二種方法效果很好,但不允許輸入小寫字母。我結束了使用CustomToken。 「*」是我的自定義標記字符,所以我的新面具是Mask="*#* #*#"
public class CustomToken : ITokenValidationRule
{
#region ITokenValidationRule Members
public bool IsRequired
{
get { return false; }
}
public bool IsValid(char ch)
{
return ValidChars.Contains(ch);
}
public char Token
{
get { return '*'; }
}
public TokenTypes Type
{
get { return TokenTypes.AlphaNumeric; }
}
private string myValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public string ValidChars
{
get { return myValidChars; }
}
#endregion
}
任何提示將不勝感激。
什麼版本? WPF,Xamarin,UWP,ASP.NET? – Aphelion