繁体   English   中英

如何在 Xamarin Forms 上动态更改我的掩码?

[英]How do I change my mask dynamically on Xamarin Forms?

我有一个用户输入银行帐号的输入,我需要用语法“XXXX-X”屏蔽它,其中连字符前的字符串长度在 4 到 13 位之间变化,最后一位必须是始终以连字符开头,连字符必须自动添加,而不是由用户输入。 我这样做的方式是:

<customcontrols:BorderlessEntry Text="{Binding Account}"
        Placeholder="0000000-0"
        Keyboard="Numeric" 
        MaxLength="14"
    <customcontrols:BorderlessEntry.Behaviors>
        <b:MaskedBehavior Mask="XXXXXXX-X" MinLength="6" MaxLength="14" />
    </customcontrols:BorderlessEntry.Behaviors>
</customcontrols:BorderlessEntry>

在这段代码中,掩码的长度是固定的,我需要它是动态的。 有没有办法做到这一点?

我已经用于屏蔽行为的代码与类似

我尝试了一些方法,比如通过entry.Text直接更改输入中的文本,但我没有成功

我是这样做的

void AccountEntry_TextChanged(object sender, TextChangedEventArgs e)
{
    if (!string.IsNullOrEmpty(e.NewTextValue) && e.NewTextValue.Length > 4)
        accountEntry.Text = HandleAccount(e.NewTextValue);
}

string HandleAccount(string input)
{
    if (input.Contains("-"))
    {
        input = input.Replace("-", "");
    }

    string result = string.Format("{0}-{1}", input.Substring(0, input.Length - 1), input[input.Length - 1]);

    return result;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM