0

在此处输入图像描述

我正在开发一个图形应用程序,用户单击 FrameworkElements 并将它们拖到画布上。它在代码隐藏中工作,但想用 Catel/MVVM 更新它。

我的一般问题:在这个应用程序中,ViewModel 必须“了解”视图,因为它必须知道相对于“LayourRoot”的 MousePosition 才能更新对象位置,这与 MVVM 模式相反。在后面的代码中处理所有 Mouse/FrameworkElement 交互以及任何具有 MVVM 属性的数据/FrameworkElement 会更好吗?(我所说的 data/FrameworkElement 是指在数据存储中存储某些属性值,例如 Canvas.Top、Canvas.Left、Fill 等。)

关于一般方法的任何建议?

4

1 回答 1

3

拖放是 UI 问题,因此应该驻留在 UI 中。

MVVM 并不意味着“没有代码隐藏”。这意味着将业务逻辑与 UI 关注点分开。

视图应该处理拖放,并且一放下它应该更新对象模型中的位置信息。

于 2014-07-30T19:31:56.703 回答