【发布时间】:2014-03-28 21:21:25
【问题描述】:
我即将为 Windows Phone 开发一个文本编辑应用程序。在这个应用程序中,用户可以输入将自动替换的代码。例如:当用户输入td 时,应用程序会将其替换为today。一旦用户在代码后输入空格,就会发生这种替换。
当我考虑这个应用程序时,我想知道:我将如何以适当的方式实现这一点?我的意思是:坚持 MVVM 模式。
当然,我可以将TextBox 绑定到ViewModel 中的属性,并在每次更改时更新该属性(例如,使用Coding4Fun toolkit 或使用BindingExpression 更新绑定源)。但是在代码被替换后,我该如何正确定位插入符号呢?
或者使用Command 会更好吗?这样我可以命令ViewModel 更改文本,提供当前位置并让Command 回复Message,其中包含新文本和更新的位置。恐怕这会导致View 和ViewModel 之间的流量相当大。
我还在TextBox 上使用EventTrigger 找到了nice solution。但是这个解决方案的一个缺点是替换代码的逻辑由View调用,而它应该由ViewModel调用。
你说什么?
【问题讨论】:
标签: c# xaml mvvm windows-phone-8