我是 WPF 和 MVVM 的新手,希望能帮助我解决以下问题。
我想创建一个应用程序,用户通过对话框指定他希望如何在页面上布局 N 个图表对象,并且应用程序在画布上向他显示此布局。当对他在画布中看到的布局感到满意时,用户会将其保留以供以后使用。
所有图表对象都可以显示为矩形。用户还可以定义一个标题,它也是一个矩形。
典型的布局可能是页面顶部的标题,下面是三个并排的图表。用户将能够在对话框中指定此布局以及每个子项的尺寸和位置,然后点击“应用”按钮,期望在画布上以图形形式查看此规范。
在我的视图模型中,我将有一棵树,其中父级是画布,有一个标题类型的子级和 3 个图表类型的子级。
用户可能不喜欢他所看到的,并在对话框中进行更改,这将影响视图模型中的更改。
我有点理解对话框和视图模型之间的 View-ViewModel 交互。但不知道如何实现 Canvas-ViewModel 交互。这意味着当用户在对话框中请求在给定坐标处说出给定大小的标题矩形时,我知道如何在视图模型的树中添加该标题对象,但我不知道如何更新画布ViewModel 的树。如何绘制画布以反映视图模型中的对象树,然后在每次视图模型更改时重新绘制(作为用户与对话框交互的结果)?