C# 文本框数据绑定Silverlight 5在文本框中的键入速度非常慢
如果您在文本框上有一个带有UpdateSourceTrigger.PropertyChanged的绑定,每当文本框上的textproperty发生更改并且您在该属性上有一个RaisedPropertyChanged时,该绑定都会更新您的数据源,那么如果您的文本框中有大量文本(超过1000个字符),那么您的文本框会变得非常慢(在键入某些文本期间)。有人能解决这个问题吗?我需要将数据模型的更改通知GUI。我使用MVVM模式。我已经尝试将我的内容属性转换为依赖对象->相同的文本框。这个问题让我困惑,因为这应该是基本的silverlight内容 干杯 托拜厄斯C# 文本框数据绑定Silverlight 5在文本框中的键入速度非常慢,c#,silverlight,data-binding,textbox,onkeyup,C#,Silverlight,Data Binding,Textbox,Onkeyup,如果您在文本框上有一个带有UpdateSourceTrigger.PropertyChanged的绑定,每当文本框上的textproperty发生更改并且您在该属性上有一个RaisedPropertyChanged时,该绑定都会更新您的数据源,那么如果您的文本框中有大量文本(超过1000个字符),那么您的文本框会变得非常慢(在键入某些文本期间)。有人能解决这个问题吗?我需要将数据模型的更改通知GUI。我使用MVVM模式。我已经尝试将我的内容属性转换为依赖对象->相同的文本框。这个问题让我困惑,因
var绑定=新绑定(“内容”);
binding.Mode=BindingMode.TwoWay;
binding.UpdateSourceTrigger=UpdateSourceTrigger.PropertyChanged;
myTextBox.SetBinding(TextBox.TextProperty,binding);
私有字符串m_内容;
公共字符串内容
{
获取{return m_content;}
设置
{
m_含量=值;
//RaisePropertyChanged(“内容”);
}
}
公共事件属性更改事件处理程序属性更改;
///
///引发此对象的PropertyChanged事件。
///
///具有新值的属性。
受保护的void RaisePropertyChanged(字符串propertyName)
{
PropertyChangedEventHandler处理程序=PropertyChanged;
if(处理程序!=null)
{
var e=新的PropertyChangedEventArgs(propertyName);
处理者(本,e);
}
}
尝试将文本框的UpdateSourceTrigger属性设置为LostFocus,以便在键入时不会更新基础数据源
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);
}
}