我即将为Windows Phone开发一个文本编辑应用程序。在此应用程序中,用户可以输入将自动替换的代码。例如:当用户输入td
时,该应用会将其替换为today
。一旦用户在代码后输入空格,就会发生这种替换。
当我在思考这个应用程序时,我想知道:我怎么能以适当的方式意识到这一点?适当的意思是:坚持MVVM模式。
当然,我可以将TextBox
绑定到ViewModel
中的属性,并在每次更改时更新属性(例如,使用Coding4Fun toolkit或使用{更新绑定源{3}})。但是,在替换代码后,我将如何正确定位插入符?
或者为此使用Command
会更好吗?这样我就可以命令ViewModel
更改文本,提供当前位置,并让Command
回复一个包含新文本和更新位置的Message
。这会导致我View
和ViewModel
之间的流量相当大。
我还在EventTrigger
上使用TextBox
找到BindingExpression
。但是这个解决方案的一个缺点是View
调用替换代码的逻辑,而ViewModel
应该调用它。
你说什么?
答案 0 :(得分:0)
计算替换的大小,传递,并相应地放置克拉。在我有限的知识中,这似乎是最好的解决方案。
答案 1 :(得分:0)
您需要添加绑定属性updateSourceTrigger =“PropertyChanged”(Winrt)。它在wp8中不存在所以使用updateSourceTrigger =“Explicit”就像这样=> UpdateSourceTrigger
使用"yourTextbox".SelectionStart("yourTextbox".Text.lenght - 1)