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