【发布时间】:2013-04-30 12:30:22
【问题描述】:
我正在使用 MVVM 模式编写此major memory trainer,方法是在屏幕上为包含 2 位数字的标签设置动画,并要求用户快速输入每个数字的相应助记符。动画是如何完成的完全取决于 View,所以后面会有一些代码。当在 UI 中输入了正确的助记符或数字从屏幕上消失时,将从视图中执行命令以传达已发生的情况。
在 ViewModel 中,我想定期触发 View 动画的新数字(随心所欲)。
实现这一目标的最佳方法是什么?我可以在 ViewModel 中有一个 ObservableCollection,但我想做的不仅仅是简单地绑定到它,我需要在添加和删除数字时在后面的代码中执行一个方法。
是否符合 MVVM 在 ViewModel 中使用简单的 .NET 事件并通过以下方式订阅它们:DataContext.NumberAdded += new NumberAddedEventHandler(....) 还是我应该这样做的另一种方式?
【问题讨论】:
-
另外,我相信你甚至不需要一个事件。您应该能够绑定到视图中的“当前挑战”集合,使用
DataTemplate渲染每个挑战并使用触发器处理动画。无需活动。