Свойства линии не привязываются к ViewModel WPF C#
Необходимо, чтобы при изменении координаты линии свойство передовалось во ViewModel (координаты линии изменяются при перемещении курсора).
MainWindow.xaml
<Canvas Name="test" Background="Transparent" MouseMove="test_MouseMove"></Canvas>
MainWindow.xaml.cs
public partial class MainWindow : Window
{
private Line line;
public MainWindow()
{
InitializeComponent();
line = new Line
{
Stroke = Brushes.Black,
StrokeThickness = 1,
X1 = 100,
Y1 = 0,
};
test.Children.Add(line);
var viewModel = new ViewModel();
var myBinding = new Binding
{
Source = viewModel,
Path = new PropertyPath("X2"),
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
};
BindingOperations.SetBinding(line, Line.X2Property, myBinding);
}
private void test_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
var point = e.GetPosition(this);
line.X2 = point.X;
line.Y2 = point.Y;
}
}
ViewModel
internal class ViewModel
{
private double x2;
public double X2
{
get
{
return x2;
}
set
{
x2 = value;
}
}
}
Источник: Stack Overflow на русском