文本框滞后有大量数据? (Silverlight 4)

时间:2011-09-29 12:27:44

标签: c# silverlight user-interface silverlight-4.0

我有一个文本框通过TwoWay绑定绑定到我的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));
    }

1 个答案:

答案 0 :(得分:2)

所以基本上你问TextBox(它的目的是做“请输入你的名字”)来处理300KB的文本,现在你看到了一些滞后。嗯...您是否尝试过创建一个包含单个TextBox的空Silverlight应用程序,将该数量的文本直接分配给其Text属性,然后开始编辑。你还看到滞后吗?如果是这样,那么听起来你正在推动文本框能力的极限。

我不知道一个严肃的选择,也许第三方可能有所帮助。 RichTextBox可能不会遇到同样的问题,因为它明确地设计用于那种文本编辑。然而,它不容易绑定和处理Xaml的奇怪方言而不是直接文本。