你好,我想創建一個網格在xmal中,通過ViewModel填充。 網格是一個5x5網格,我的ViewModel包含一個「MyObject」列表。該對象包含2個int變量Row和Column witch指示Object應該在網格中的哪個位置。 MyObject也是一個視圖模型,並且網格空間應該用MyObject作爲DataContext填充數據模板名稱MyTemplate。 現在,我對xaml和視圖模型非常陌生,但如何做最好的方法呢?Xaml動態網格與Viewmodels
回答
讓我們來看看...
把一個ObservableCollection到VM,然後...
選項1:
...一個簡單的網格成五,訂閱它是從XAML CollectionChanged事件。 cs,將每個添加對象的ContentControls添加到網格,將ContentControl的Grid.Row和Grid.Column屬性綁定到每個對象的屬性,並將DataContext設置爲對象本身,將ContentTemplate設置爲Resources [「MyTemplate」]。 (此外,對於任何刪除的對象找到相應的ContentControl中並刪除它。)
優點:容易
不足:的.cs,沒有設計師的支持
選項2:
......一個ItemsControl到V.將其ItemPanelTemplate設置爲網格,並將ObservableCollection綁定到它的ItemsSource。然後將你的Itemtemplate設置爲MyTemplate。現在,訣竅是根據你的價值將物品放在正確的單元格中。爲此,請使用ItemsControl的ItemContainerStyle屬性,並將容器的Grid.Row和Column綁定到這些屬性。
臨:好的XAML和易於擴展
缺點:ItemContainerStyle是WPF棘手,在Silverlight中缺少的,因此在後者的情況下,你可以忘記它
方案3:
...定製你寫的面板。也許從網格繼承它。如果一個元素被放入它,檢查它是否是DataContext實現了一個包含你的屬性的接口。然後在選項2以此爲ItemsPanel ...
臨:它應該很好地工作
缺點:你必須爲此編寫一個新的面板...
希望這些3之一將是對你合適。
謝謝,因爲它是silverlight我使用我想我會選擇3。 – Androme 2011-01-22 15:10:30
- 1. XAML C#按網格在窗口中元素的動態位置
- 2. 動態'微博風格'網址與ASP.NET
- 3. WPF - 在XAML中動畫網格長度
- 4. Extjs動態網格
- 5. 動態網格CSS
- 6. Extjs動態網格
- 7. 動態網格列
- 8. 在XAML中動畫網格列或網格行?
- 9. 動態生成XAML
- 10. 動態刷in XAML
- 11. 動態加載XAML
- 12. WPF網格XAML佈局
- 13. Xaml替代網格佈局
- 14. WPF XAML綁定網格
- 15. XAML C#隱藏網格行
- 16. Kendo網格動態編輯
- 17. 動態網格佈局
- 18. Java Swing動態網格
- 19. 動態構建網格
- 20. 動態創建WPF網格
- 21. 動態創建網格EXTJS
- 22. 動態包裝網格
- 23. 動態數據網格
- 24. 動態圖庫網格
- 25. 靜態網格與按鈕點擊在extjs4動態數據
- 26. 網絡驅動器:與網格互動
- 27. XAML:網格單元格溢出
- 28. UserControls的ItemsControl與ViewModels
- 29. 動態更改Telerik的網格格式
- 30. 動態jpg網址與.htaccess
你可能是指xaml xmal權利? – Rumplin 2011-01-22 08:05:09