1
A
回答
2
我想,既然你提到MVVM,你想從您的視圖模型做到這一點?
在這種情況下,我的建議是從視圖模型將消息發送到視圖。 在視圖中,您添加對此消息的訂閱並從那裏添加網格。
你可以做這樣的事情,在其最簡單的形式。這將是使用優秀MVVM Light framework:
ViewModel.cs:
private void CreateGrid()
{
Messenger.Default.Send<NotificationMessage>(new NotificationMessage("CreateGrid"));
}
View.xaml.cs:
Messenger.Default.Register<NotificationMessage>(this, nm =>
{
if (nm.Notification != "CreateGrid") return;
// Create grid here
});
1
如果你在運行時動態添加控件,簡單的答案是,你可能不會成功這樣做,通過MVVM。將代碼隱藏到代碼隱藏中可能是你最好的選擇 - 不知道你在構建什麼樣的應用程序,很難通過判斷並大聲要求你必須使用MVVM。
話雖這麼說,我很少與WPF的情況下我必須做這樣的動態控制操作發現自己。相反,我結束了使用不同的WPF構造(ListBox,ContentControl,ItemsControl等),以及諸如ItemTemplates之類的東西來獲得我想要的。
同樣,不知道更多關於你正在試圖完成的任務,這是很難給出任何形式的規範性指導。
相關問題
- 1. 如何行添加到WPF網格MVVM
- 2. 如何將新列添加到網格?
- 3. MVVM Light - 如何將(動態)usercontrol添加到網格?
- 4. 將代碼添加到網格視圖中的imagebutton
- 5. 如何將一般網格添加到網格xy.plot
- 6. 將行添加到網格
- 7. 將scrollviewer添加到網格
- 8. 如何將行添加到GXT網格
- 9. 將對象添加到網格中
- 10. 如何在unity3d中將網格碰撞器添加到樹中?
- 11. 如何在SAS中添加網格線
- 12. 如何在網格中添加圖表
- 13. 在gnuplot中添加網格
- 14. 如何添加項目到XAML/WINRT網格代碼
- 15. 如何在網格中添加新創建的值在extjs4中
- 16. 在ExtJs中添加按鈕到網格
- 17. 如何在代碼中的特定位置添加子控件到網格?
- 18. 如何將元素添加到WPF網格,如HTML表格?
- 19. 刷新數據網格添加一個新的客戶MVVM WPF
- 20. 如何將SSN掩碼添加到劍道網格過濾器?
- 21. 在管理網格中:將隱藏列添加到magento adim產品網格
- 22. 如何將新對象添加到FormAlchemy的網格
- 23. 如何手動將新行添加到數據網格
- 24. 如何將表格/網格添加到vb.net/C# WPF窗口?
- 25. wx/wxPython:如何將滑塊添加到網格單元格?
- 26. 如何將燈箱添加到網格中的字段?
- 27. 如何將複選框添加到vb.net中的數據網格
- 28. 如何將單選按鈕添加到GWT中的網格?
- 29. Excel:如何將自定義網格線添加到圖表中?
- 30. 如何將數據網格添加到winforms中的組合框?
編寫代碼後,並不意味着它是不可能使用MVVM。只要代碼隱藏僅與視圖相關(並且在運行時創建控件純粹與視圖相關),那麼IMO對模式完全沒問題。 – ken2k 2012-02-17 14:36:25
@ ken2k我同意。原文是從MVVM的角度詢問如何實現這一點,這就是爲什麼我以我的方式回答問題的原因。我不認爲使用代碼隱藏可以避免在應用程序的其他地方實現MVVM方法。 – Robaticus 2012-02-17 14:41:42