文本框延迟与大量的数据?(Silverlight 4)



我有一个文本框绑定到一个字符串在我的ViewModel通过双向绑定,通常包含数百行,如果不是更多。当文本框包含大量文本时,输入文本时会出现明显的输入延迟。

所以,我现在试图跟踪这个性能下降的来源,我想知道它是否可能是控件本身的限制。

任何想法吗?

谢谢!

编辑:

在我的测试中,当我开始看到明显的延迟时,我有800行,每行211个字符。我添加的文字越多,它就越慢。

下面是一些代码:

<TextBox x:Name="rightTextBox" Text="{Binding Source={StaticResource ViewModel}, Path=Text, Mode=TwoWay}"
    AcceptsReturn="True" />

我的文本框被绑定到这个字符串:

private string text;
public string Text
{
    get
    {
        return this.text;
    }
    set
    {
        if (this.text != value)
        {
            this.text= value;
            NotifyPropertyChanged("Text");
        }
     }
 }
 public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }

所以基本上你要求TextBox(它被设计成做"请输入您的名字"之类的事情)处理300KB的文本,现在你看到一些延迟。嗯…您是否尝试过创建一个包含单个文本框的空Silverlight应用程序,将该数量的文本直接分配给其text属性,然后开始编辑?你还能看到延迟吗?如果是这样的话,那么听起来你正在挑战文本框能力的极限。

我不知道一个严肃的替代品,也许第三方可能会有帮助。RichTextBox可能不会遇到同样的问题,因为它显然是为这种文本编辑而设计的。然而,它不容易绑定和处理奇怪的Xaml方言,而不是直接的文本。

最新更新