1

我必须在不增加原始文本长度的情况下characters以空格分隔的四组显示文本。XamMaskedEditor例如。我的原文是0000111100001111但必须显示0000 1111 0000 1111

可能吗?

如果是,请告诉我。

先感谢您。

4

2 回答 2

0

在您的 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();
    }
}
于 2013-07-08T19:05:38.663 回答
0

如果您的输入将是静态最大长度(例如 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

于 2013-07-08T18:48:14.180 回答