我遇到了将大字符串绑定到WPF中的TextBox的性能问题。
在视图中,我将TextBox的Text属性绑定到视图模型的Output属性,即StringBuilder。
查看:
<TextBox Text="{Binding Output, Mode=OneWay}" IsReadOnly="True"/>
视图模型:
public StringBuilder Output
{
get { return _output; }
}
随着StringBuilder中的文本变大,绑定的性能降低。
使用MVVM做什么是更好的方法?
答案 0 :(得分:4)
绕过数据绑定延迟的一种可能方法是使用异步绑定。您可以通过设置绑定对象的IsAsync属性来执行此操作:
这当然不会解决绑定需要很长时间的问题,但会阻止UI在绑定时冻结。
您还可以使用优先级绑定来显示文本的缩减版本(可以快速加载),同时加载较大的文本项。 msdn - &gt; http://msdn.microsoft.com/en-us/library/ms753174.aspx上描述了优先级绑定。
答案 1 :(得分:0)
我无法想象为什么绑定的性能会很慢,因为它只是显示StringBuilder中的内容。但是,我想到的第一件事是你如何添加到StringBuilder。在StringBuilder中追加,删除,替换或插入字符可能会给您带来性能问题。
我真的不知道你正在构建什么样的字符串或者要求是什么,但你可能需要使用不同的结构。