元のテキストの長さを増やさずcharacters
に、スペースで区切られた4 つのグループでテキストを表示する必要があります。XamMaskedEditor
例えば。私の元のテキストは0000111100001111
表示する必要があります0000 1111 0000 1111
。
出来ますか?
はいの場合はお知らせください。
前もって感謝します。
入力が静的な最大長 (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
しかし、テキスト プロパティの値は次のようになります。
1234567890123456
このコンバーターを 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();
}
}