2009-08-18 35 views
3

我遇到将大字符串绑定到WPF中的TextBox的性能问题。将TextBox绑定到使用MVVM的WPF中的大字符串

在视图中,我将TextBox的Text属性绑定到视图模型的Output属性,它是一个StringBuilder。

查看:

<TextBox Text="{Binding Output, Mode=OneWay}" IsReadOnly="True"/> 

视图模型:

public StringBuilder Output 
    { 
     get { return _output; } 
    } 

正如StringBuilder的文字变大的约束力降级的性能。

使用MVVM做这件事的更好方法是什么?

+0

字符串有多大?如果您将'Output'更改为输入'string'并返回'_output.ToString()',而不是直接返回'_output',是否有区别? – 2009-08-18 16:09:58

回答

4

避免数据绑定中延迟的一种可能方式是使用异步绑定。您可以通过设置绑定对象的isAsync属性做到这一点:

当然,这不会解决的结合需要很长时间的问题,但会结冰,而它的结合停止UI。

您还可以使用优先级绑定来显示文本的缩减版本(可以快速加载),同时加载较大的文本项目。优先绑定在msdn上描述 - >http://msdn.microsoft.com/en-us/library/ms753174.aspx

0

我真的不能想象为什么绑定的性能会很慢,因为它只是显示StringBuilder中的内容。然而,我想到的第一件事是你如何添加到StringBuilder。追加,删除,替换或插入字符到StringBuilder可能是什么给你的性能问题。

我真的不知道你正在建造什么样的字符串或需求是什么,但你可能需要使用不同的结构。