如何实时搜索和替换TextBox中的文本

时间:2014-03-28 21:21:25

标签: c# xaml mvvm windows-phone-8

我即将为Windows Phone开发一个文本编辑应用程序。在此应用程序中,用户可以输入将自动替换的代码。例如:当用户输入td时,该应用会将其替换为today。一旦用户在代码后输入空格,就会发生这种替换。

当我在思考这个应用程序时,我想知道:我怎么能以适当的方式意识到这一点?适当的意思是:坚持MVVM模式。

当然,我可以将TextBox绑定到ViewModel中的属性,并在每次更改时更新属性(例如,使用Coding4Fun toolkit或使用{更新绑定源{3}})。但是,在替换代码后,我将如何正确定位插入符?

或者为此使用Command会更好吗?这样我就可以命令ViewModel更改文本,提供当前位置,并让Command回复一个包含新文本和更新位置的Message。这会导致我ViewViewModel之间的流量相当大。

我还在EventTrigger上使用TextBox找到BindingExpression。但是这个解决方案的一个缺点是View调用替换代码的逻辑,而ViewModel应该调用它。

你说什么?

2 个答案:

答案 0 :(得分:0)

计算替换的大小,传递,并相应地放置克拉。在我有限的知识中,这似乎是最好的解决方案。

答案 1 :(得分:0)

您需要添加绑定属性updateSourceTrigger =“PropertyChanged”(Winrt)。它在wp8中不存在所以使用updateSourceTrigger =“Explicit”就像这样=> UpdateSourceTrigger

使用"yourTextbox".SelectionStart("yourTextbox".Text.lenght - 1)

设置排名