Как связать свойства маски для TextEdit в XAML? - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь настроить поле TextEdit в моем проекте WPF, но у меня есть некоторые проблемы с маской.

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"
                   />

Где маска возвращает строки, такие как "d", "n0"

Мне нужно иметь возможность связать длину ввода и строку, которая определяет мою маску внутри xaml.Есть идеи, что я делаю не так?Я просмотрел большинство форумов devexpress и нашел что-то вроде этого: Mask = "([a-zA-Z0-9] | \ s) {0,31}", но это не позволяет мне изменять длину илирегулярное выражение.

1 Ответ

0 голосов
/ 28 ноября 2018

В маскированном режиме свойство TextEdit.MaxLength не работает и должно быть установлено равным 0. В этом случае количество символов, которое может ввести конечный пользователь, определяется маской редактора.Взгляните на квантификаторы раздел Тип маски: расширенные регулярные выражения справочную статью, чтобы узнать, как создать соответствующую маску:

[a-zA-Z0-9]{0,_} // you should replace _ with the exact length value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...