如何在XAML中绑定TextEdit的Mask属性



我正试图在我的WPF项目中设置一个TextEdit框,但我的掩码有一些问题。

XAML:

<dxe:TextEdit x:Name="dxTextEdit" 
Height="23" MinWidth="200" Width="Auto"
HorizontalAlignment="Right"
Text="{Binding Value, Mode=TwoWay}"
MaskType="RegEx" 
MaxLength="{Binding InputLength}"
Mask="{Binding Mask, Mode=TwoWay}"
/>

其中Mask返回一个类似"[a-zA-Z0-9]"的字符串,InputLength返回一个值。我不能在框中插入任何内容,或者最多只能插入一个字符。问题是,掩码在我的SpinEdit框中工作得很好,它的编码是这样的:

XAML:

<dxe:SpinEdit x:Name="dxSpinEdit" 
Height="23" MinWidth="200" Width="Auto"
HorizontalAlignment="Right"
Text="{Binding Value, Mode=TwoWay}"
MaskType="Numeric"
IsFloatValue="{Binding FloatValue}"
MinValue="{Binding MinValue}"
MaxValue="{Binding MaxValue}"
Mask="{Binding Mask, Mode=TwoWay}" 
MaxLength="{Binding Path=InputLength}"
MaskShowPlaceHolders="{Binding ShowPlaceHolder}"
InvalidValueBehavior="WaitForValidValue"
MaskUseAsDisplayFormat="True"
AllowRoundOutOfRangeValue="True"
/>

其中Mask返回字符串,如"d"、"n0">

我需要能够绑定输入长度和在xaml中定义我的掩码的刺痛。你知道我做错了什么吗?我浏览了大多数devexpress论坛,发现了这样的东西:Mask="([a-zA-Z0-9]|\s({0,31}",但它不允许我修改长度或正则表达式。

在屏蔽模式下,TextEdit.MaxLength属性不可操作,必须设置为0。在这种情况下,最终用户可以输入的字符数由编辑器的掩码指定。看看Mask Type:Extended Regular Expressions帮助文章的Quantifiers部分,了解如何创建合适的掩码:

[a-zA-Z0-9]{0,_} // you should replace _ with the exact length value

最新更新