TextBox DataBinding上的UpdateSourceTrigger.PropertyChanged和INotifyChanged在TextBox中键入的Silverlight 5非常慢

时间:2012-06-19 13:00:56

标签: c# silverlight data-binding textbox onkeyup

如果您在文本框上绑定了UpdateSourceTrigger.PropertyChanged,每当TextBox上的textproperty发生更改并且您在该Property上有一个RaisedPropertyChanged时,它就更新您的数据源,那么您的文本框变得非常慢(在键入一些文本期间)里面有很多文字(超过1000个字符)。有人为这个问题找到解决方案吗?我需要通知GUI有关数据模型的更改。我使用MVVM模式。我已经尝试将我的内容属性转换为依赖对象 - >相同的文本框输入滞后。这个问题让我感到困惑,因为这应该是基本的银光东西?

欢呼声 托拜厄斯

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);
        }
    }

1 个答案:

答案 0 :(得分:1)

尝试将文本框的 UpdateSourceTrigger 属性设置为 LostFocus ,以便在输入时不会更新基础数据源