Использование сложного элемента управления Winforms, такого как ZedGraph в WPF с дизайном MVVM - PullRequest
3 голосов
/ 24 мая 2011

Я создаю настольное приложение WPF, построенное по шаблону MVVM.

Я хочу отобразить несколько графиков и выбрал старую библиотеку ZedGraph, так как я с ней знаком, и неткажется, что лучший вариант доступен в данный момент (пожалуйста, прокомментируйте, если есть)

Я могу поставить элемент управления графиком на моем View с помощью следующего кода:

    <WindowsFormsHost>
        <zed:ZedGraphControl x:Name="graphControl"/>
    </WindowsFormsHost>

Однако я хочусовсем немного манипулировать элементом управления графиком, устанавливая оси, данные и т. д. Придерживаясь MVVM, я не могу вызвать элемент управления графиком из ViewModel, и я не хочу помещать манипулирование графиком в коде представления.

Есть ли способ поместить объект управления графиком в ViewModel, манипулировать им там и при этом отображать его в представлении?

Ответы [ 3 ]

3 голосов
/ 25 мая 2011

IMO, я думаю, что это невозможно, поскольку используемый вами базовый элемент управления - это элемент управления Windows Forms.В качестве обходного пути вы могли бы написать пользовательский элемент управления WPF , который просто оборачивает элемент управления графиком с использованием WindowsFormsHost подхода и предоставляет столь необходимые свойства для управления осями, даннымии т. д.

2 голосов
/ 12 июля 2012

Чтобы разместить ZedGraph в окне WPF, посмотрите на пример здесь .

0 голосов
/ 11 февраля 2018

Это вполне возможно. Вы можете использовать шаблон поведения для управления графиком. Установите свойства зависимостей, которые можно использовать в качестве привязок в XAML к вашей модели представления. Затем код в вашем поведении (свойствах зависимости) действует как связующее звено между вашими привязками в xaml и фактическим элементом управления.

...