我正在尝试设计一个WPF应用程序,用户可以在其中设计algorithm flow chart。这意味着我的网格上有大量的图形。 (我打算使用Canvas,但决定使用网格,因为canvas本身不支持ScrollViewer)。我在我的应用程序中使用MVVM设计模式。
要动态添加/删除图形,我应该将viewmodel中的哪些状态导出到我的视图?
答案 0 :(得分:2)
在您要显示项目集合的所有情况下都是典型的,您需要:
ObservableCollection
公开为ViewModel的属性详情可能会有所不同。我无法直观地确定您打算如何将视图实现为Grid
,因此这里有一些指导原则,假设它是Canvas
。
当项目放在视图上时,用户是否可以移动它们?如果文件保存,关闭然后重新打开,他们的职位是否应该忠实再现?如果是这样,那么项目的模型需要聚合这些显示参数。如果没有,那么视图可能决定如何在运行时自己定位项目。
如果您的商品模型非常简单,那么您可以使用ItemTemplate
的内联ItemsControl
直观地表示它们。如果没有,那么您可能需要创建ItemViewModel
并从主ViewModel中展示ObservableCollection<ItemViewModel>
。