C# 在不破坏WPF中MVVM模式的情况下,将控件从视图参照到视图模型

C# 在不破坏WPF中MVVM模式的情况下,将控件从视图参照到视图模型,c#,wpf,canvas,mvvm,C#,Wpf,Canvas,Mvvm,在创建WPF应用程序时,我想知道如何在实现MVVM模式的画布上画一条线,因此我的视图中有一个文本框、一个按钮和一个画布,我想在文本框中输入行数,当我单击按钮时,我想在画布上画线。 这里的大问题是,我是否可以在WPF中将子对象添加到画布,而不将画布控件引用到我的ViewModel(我听说将控件引用到ViewModel会破坏MVVM模式)。您需要在ViewModel中创建一个包含可观察集合的属性。该集合将包含具有设置线条和/或其他地理测量对象参数的常用属性的元素:位置、大小、颜色等。在XAML中,设

在创建WPF应用程序时,我想知道如何在实现MVVM模式的画布上画一条线,因此我的视图中有一个文本框、一个按钮和一个画布,我想在文本框中输入行数,当我单击按钮时,我想在画布上画线。
这里的大问题是,我是否可以在WPF中将子对象添加到画布,而不将画布控件引用到我的ViewModel(我听说将控件引用到ViewModel会破坏MVVM模式)。

您需要在ViewModel中创建一个包含可观察集合的属性。该集合将包含具有设置线条和/或其他地理测量对象参数的常用属性的元素:位置、大小、颜色等。在XAML中,设置绑定到此集合的ItemsControl。在项目模板ItemTemplate中,指定集合项目的显示方式。将ItemsPanel替换为Canvas。在ItemContainerStyle的样式中,设置画布中项目位置的绑定是否确实需要直接在画布中绘制?你能不能创建一个有序的图像,然后把它绑定到图像控制上?Mvvm只是一个模式。你使用它是因为它的积极面超过消极面。在我们的地图绘制应用程序中,视图具有对其viewmodel的引用。在视图中处理事件,完成处理,并将vm添加到该视图模型中的observablecollection中。我可以添加一个依赖项属性,绑定到该属性并在viewmodel中执行操作。