2012-01-10 37 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綁定到視圖模型中的集合。

相關問題