WPF MVVM中canvas上的绘制线不起作用

我有这个xaml:

 <!---->  

在模型中我有:

 public Canvas DrawCanvas { get; set; } public ImageSourceViewModel() { this.PropertyChanged += this.ImageSourceViewModel_PropertyChanged; this.Scale = 1; this.TranslateX = 0; this.TranslateY = 0; DrawCanvas=new Canvas(); var line = new Line(); line.X1= 1; line.Y1 = 1; line.X2 = 100; line.Y2 = 10; line.Stroke=new SolidColorBrush(Colors.Green); line.StrokeThickness = 2; line.Visibility=Visibility.Visible; DrawCanvas.Children.Add(line); } 

我正在使用Caliburn Micro。

它不会在输出上绘制任何行。

这个问题可能有两个原因:

1-视图中的canvas未绑定到ViewModel中的DrawCanvas。

2-绘图代码不正确。

如何检查我的视图canvas是否实际绑定到ViewModel中的DrawCanvas? 绑定的语法是否正确? 我正在使用Caliburn Micro。

如果绑定是正确的,那么绘制代码的问题是什么呢?

这就是你在MVVM中做到的方式(我从这里修改了解决方案: https : //stackoverflow.com/a/1030191/3047078 ):

在视图中:

             

在ViewModel中,您需要这样的东西:

 public ObservableCollection Lines {get;set;} 

在模型中:

 public class MyLine { public int X1 {get;set;} public int Y1 {get;set;} public int X2 {get;set;} public int Y2 {get;set;} }