我必须在不增加原始文本长度的情况下characters
以空格分隔的四组显示文本。XamMaskedEditor
例如。我的原文是0000111100001111
但必须显示0000 1111 0000 1111
。
可能吗?
如果是,请告诉我。
先感谢您。
在您的 xaml 中使用此转换器,未对其进行测试,但它应该可以正常工作。
public class FourLetterGroupConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var toConvert = (string)value;
StringBuilder sb = new StringBuilder();
for (var i = 0; i < toConvert.Length; i++)
{
sb.Append(toConvert[i]);
if(i != 0 && i%4 ==0)
{
sb.Append(" ");
}
}
return sb.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
如果您的输入将是静态最大长度(例如 16 位信用卡号),您可以使用 DataMode 属性并将其设置为“Raw”。这样,文本属性的值将是没有填充的输入值。
<inf:XamMaskedEditor HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="150"
Mask="#### #### #### ####"
DataMode="Raw"
Text="{Binding TestTxt, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
在上面的示例中,您的输入将只允许数字,如下所示:
1234 5678 9012 3456
但是您的 text 属性的值是;
1234567890123456