Маскированное редактирование Syncfusion продолжает добавлять старое значение к новому значению даже после того, как я создаю новый экземпляр - PullRequest
0 голосов
/ 26 июня 2019

Я столкнулся со странным взаимодействием с Syncfusion Masked Edit. Это сторонний WPF-элемент управления, который в основном представляет собой текстовое поле, которое принимает строковую маску и позволяет вам выбрать способ ее интерпретации (тот, который я сейчас установил).в RegEx), чтобы отфильтровать ваш текст.

После создания нового NewCustomer с помощью моей команды сброса, если я попытаюсь ввести Маскированное редактирование, которое имело значение, до создания нового экземпляра он каким-то образом все еще запоминаетэто старое значение и добавляет его к новому значению.Вот клип (https://gfycat.com/embellishedpalefantail)

Что я пробовал:

Я попытался удалить свойства Mask и MaskType и запустилпрограмма, чтобы увидеть, было ли что-то еще причиной, но, поскольку она работала нормально, проблема, кажется, лежит на самой маске,

  1. Может быть, они интерпретируют мою маску по-разному, и она ведет себя так, как они хотелиэто к?
  2. Или моя Маска просто неверна и интерпретирует это нормально? Потому что с моей маской [0-9a-zA-Z ]{0,20} я ожидал, что она будет разрешать только буквенно-цифровые символы и пробел с минимальной длиной 0 и максимумдлина 20.

Вот код всего, что связано с моей проблемой:

C #

  1. Свойство, к которому привязано текстовое значение:

    private Customer newCustomer;
    public Customer NewCustomer
    {
        get { return newCustomer; }
        set { newCustomer = value; RaisePropertyChanged("NewCustomer"); }
    }
    
    public class Customer : BaseSearchableCollectionClass
    {
        private string firstName;
        public string FirstName
        {
            get { return firstName; }
            set { firstName = value; RaisePropertyChanged("FirstName"); }
        }
    }
    
    // The BaseSearchableCollectionClass contains the INotify implementation and other unrelated code
    
  2. Команда сброса:

    public RelayCommand ResetNewCustomerCommand { get; private set; }
    public void ResetNewCustomer(object msg)
    {
        NewCustomer = new Customer();
    }
    public bool ResetNewCustomerCanUse(object msg)
    {
        if (HasChange() == true)
            return true;
        return false;
    }
    

XAML

  1. SFMaskedEdit:

    <chart:SfMaskedEdit
        Text="{Binding NewCustomer.FirstName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"                          
        Mask="[0-9a-zA-Z ]{0,20}" 
        MaskType="RegEx"
     />
    
  2. Кнопка сброса:

     <Button 
        Command="{Binding ResetNewCustomerCommand}" 
        Content="Reset"
     />
    

То, что я ожидал:

Я ожидал, что он будет работать именно так:

  1. Я что-то набираю в Маскированном редактировании
  2. Маскированное редактирование отфильтровывает любые нежелательные символы и поддерживает требования к длине
  3. Я нажимаю кнопку сброса, чтобы создать нового клиента, эффективно удаляя любые существующие значения
  4. Я набираю новое значение в МаскированномОтредактируйте, как если бы это было новое текстовое поле (к сожалению, проблема заключается в том, что он добавляет очищенное значение к новому значению)

1 Ответ

0 голосов
/ 27 июня 2019

Указанный случай является дефектом элемента управления SfMaskedEdit, и мы включим исправление для проблемы в наш следующий выпуск.

С уважением, Магеш S

...