在MVVM中将对象的集合绑定到Canvas?

时间:2012-01-10 17:56:55

标签: c# wpf silverlight mvvm

我有点想制作一款游戏....所以我希望能够动态地将一个数据对象添加到Canvas中,并且显示它。

即) 1)Car对象,包含汽车信息,当它绑定到Canvas时,我想将其显示为UserControl(包含一些图形)。

2)当汽车对象显示/添加/删除到画布时,它应该做一些动画。

所以有3个问题:

  1. 是否可以直接绑定到Canvas来执行我描述的操作 以上?
  2. 我是否更好地在代码隐藏中以编程方式执行?
  3. MVVM中有这样的事情吗?如果我的Car集合对象在我的ViewModel中,我唯一能做的就是将它绑定到View?然后,如果我想在用户按某个键时让汽车做一些动画,我怎样才能使用我的ViewModel与View进行交互?
  4. 一些建议将不胜感激:)

2 个答案:

答案 0 :(得分:1)

要在将项目添加到面板时显示动画,您可以使用Blend SDK中的流体布局。 (Some demonstration video;遗憾的是没有为没有Blend的人显示生成的代码)

对于绑定到画布的方法,请参阅this question

我不建议强制执行此操作。

答案 1 :(得分:1)

我假设您想在画布上放置多个对象。为此,您需要模板ItemsControl。将面板模板化为画布。这一切都在使用XAML的表示层中完成。然后将ItemsControl的ItemsSource绑定到视图模型中的集合。