Я пытаюсь построить диаграмму с узлами, контактами и проводами.Давайте представим, что мне сейчас небезразличны только провода и контакты.
Провод
<Path Stroke="Red" StrokeThickness="2" >
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure StartPoint="### HERE I NEED TO BIND TO PIN POSITION ###">
<PathFigure.Segments>
<PathSegmentCollection>
<BezierSegment Point1="100 100"
Point2="100 50"
Point3="300 200"/>
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
Взгляните на PathFigure s StartPoint , значение Point , которое сообщает проводу, с чего начинать.
Теперь вывод намного проще, в основном это Thumb (который позволяет легко перетаскивать на холст)
<UserControl x:Class="WireMvvm.Pin"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WireMvvm"
mc:Ignorable="d"
d:DesignHeight="10" d:DesignWidth="10">
<Thumb Background="Red">
</Thumb>
Что я не знаю, как это сделать, это применить шаблон MVVM в этом случае и какПин перемещается, точка запуска из провода должна располагаться в том же месте, что и Пин, я точно знаю, как это делать обычно с событиями и большим количеством кода позади, и не думаю, что это плохо, но я хотел бы изучить другие способы.
Мне также нужно иметь возможность сериализовать диаграмму и добавлять контакты / провода во время выполнения (но это не мой вопрос, просто дополнительная информация, потому что я не уверен, как MVVM работает с динамическими вещами во время выполнения)
Если у меня есть модели для провода и булавки отдельно, тогдамодели для обоих тоже?Я серьезно заблудился и пытался смотреть много видео, но я все еще изо всех сил пытаюсь применить это с моей идеей.