问题描述
我在用户控件上有一个扩展WPF工具包的MaskedTextBox控件,该控件绑定到一个int。 int的值不能超过两位数,而只能是一位数,这就是为什么我使用MaskedTextBox。但是我们在创建新记录时无法显示此控件。当前,在创建新记录时,它显示为“ 00”。我们只希望它显示单个零,例如“ _0”。我一直在关注its GitHub page中对MaskedTextBox的描述。这是我的第一次尝试:
input
通过查看GitHub页面,我认为它会给我“ _0”。没有,它为新记录显示“ 00”。同样,我尝试将掩码值设置为“ 00”和“ 90”。两者都显示为新记录的“ 00”。
是否可以显示带有“ _0”的新记录?如果可以,怎么办?
解决方法
您始终可以处理TextChanged
事件:
private void MaskedTextBox_TextChanged_1(object sender,TextChangedEventArgs e)
{
TextChange textChange = e.Changes.FirstOrDefault();
TextBox textBox = (TextBox)sender;
if (textChange != null && textChange.AddedLength == 2 && textChange.RemovedLength == 0 && textBox.Text == "00")
textBox.Text = "_0";
}
XAML:
<tk:MaskedTextBox Mask="00" Value="0" ValueDataType="{x:Type System:Int32}"
TextChanged="MaskedTextBox_TextChanged_1"/>