2012-01-10 34 views
1

我喜欢做一个游戏....所以我想能够动态地添加一个数据对象到画布,并显示它。将对象的集合绑定到MVVM中的Canvas?

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

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

因此,有3个问题:

  1. 是否有可能结合到画布直接做的事情,我上面描述 ?
  2. 是不是更好我只是在代码隐藏中以编程方式执行它?
  3. MVVM如何做这样的事情?如果我的Car集合对象在我的ViewModel中,我能做的唯一方法是将它绑定到View?那么如果我想让汽车在用户按下某个键时做一些动画,我如何使用ViewModel与视图交互?

一些建议,可以理解:)

回答

1

要显示动画时的项目被添加到一个面板,您可以使用流动布局从Blend SDK。 (Some demonstration video;遗憾地没有显示那些没有Blend的生成代码)

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

我不会推荐做这个命令。

+0

必须?所以我应该继续使用MVVM呢?有什么理由吗? – 2012-01-10 18:57:54

+0

@KingChan:这不是关于MVVM,而是关于命令式还是声明式式。数据绑定和XAML是声明式的,设置值并通过C#给出指令是必要的。在我看来,命令是一个更容易出错的问题,你的第二个问题似乎是问是否要手动添加项目或动画,我不会推荐。 – 2012-01-10 19:07:28

+0

我明白你的意思了,谢谢。 – 2012-01-10 19:11:48

1

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

相关问题