UpdateSourceTrigger.PropertyChanged и INotifyChanged в TextBox DataBinding Silverlight 5 печатает в TextBox очень медленно

Если у вас есть привязка к текстовому полю с UpdateSourceTrigger.PropertyChanged, который обновляет ваш источник данных каждый раз, когда изменяется текстовое свойство в TextBox, и у вас есть RaisedPropertyChanged для этого свойства, тогда ваше текстовое поле становится очень медленным (во время ввода текста), если у вас есть много текста внутри (более 1000 знаков). Есть ли у кого-нибудь решение этой проблемы? Мне нужно сообщить графическому интерфейсу об изменении модели данных. Я использую шаблон MVVM. Я уже пытался преобразовать свое Content Property в объект зависимости -> та же задержка ввода текстового поля. Эта проблема сбивает меня с толку, потому что это должен быть элементарный Silverlight ??

Ура, Тобиас

var binding = new Binding("Content");
binding.Mode = BindingMode.TwoWay;
binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
myTextBox.SetBinding(TextBox.TextProperty, binding);


private string m_content;
        public string Content
        {
            get { return m_content; }
            set
            {
                m_content = value;
                //RaisePropertyChanged("Content");
            }
        }


    public event PropertyChangedEventHandler PropertyChanged;

    /// <summary>
    /// Raises this object's PropertyChanged event.
    /// </summary>
    /// <param name="propertyName">The property that has a new value.</param>
    protected void RaisePropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            var e = new PropertyChangedEventArgs(propertyName);
            handler(this, e);
        }
    }

person Wymmeroo    schedule 19.06.2012    source источник


Ответы (1)


Попробуйте установить для свойства UpdateSourceTrigger текстового поля значение LostFocus, чтобы базовый источник данных не обновлялся при вводе.

person Vipul Kandivalikar    schedule 27.03.2013