我正在开发一个图形应用程序,其中用户单击FrameworkElements并将其拖动到Canvas上。它可以在后台代码中工作,但是想用Catel/MVVM更新它。
我的一般问题:在此应用程序中,ViewModel必须“了解” View ,因为它必须知道相对于“LayourRoot”的MousePosition才能更新对象位置,这与MVVM模式相反。更好地处理后面代码中的所有Mouse/FrameworkElement交互以及具有MVVM属性的任何data/FrameworkElement。 (通过data/FrameworkElement,我的意思是在数据存储区中存储某些属性值,例如Canvas.Top,Canvas.Left,Fill等。)
关于一般方法有什么建议吗?
最佳答案
拖放是UI的关注点,因此应驻留在UI中。
MVVM并不意味着“无代码隐藏”。这意味着将业务逻辑与UI关注点分离。
View 应处理拖放操作,而拖放后应更新对象模型中的位置信息。
关于c# - MVVM,Catel和图形UI交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25044781/