как создать элемент управления диаграммой в коде позади wpf

У меня есть элемент управления диаграммой в xaml, все работает нормально, но теперь я хочу создать эту диаграмму с помощью кода программной части: это мой xaml:

<chart:ClusteredColumnChart>
    <chart:ClusteredColumnChart.Series>
        <chart:ChartSeries
            Name = "chart"
            DisplayMember = "Date"
            ItemsSource = "{Binding}"
            ValueMember = "Scores" />
    </chart:ClusteredColumnChart.Series>
</chart:ClusteredColumnChart >

Я написал этот код, но данные не генерируются

ClusteredColumnChart chart = new ClusteredColumnChart();
ChartSeries series = new ChartSeries
{
    DisplayMember = "Date",
    ItemsSource = "{Binding}",
    ValueMember = "Scores"
};
series.ItemsSource = dt;
chart.Series.Add(series);
maingrid.Children.Add(chart);

Что я упускаю?
На мой взгляд, в кодах xaml 3 элемента управления находятся друг в друге.

диаграмма: ClusteredColumnChart --> диаграмма: ClusteredColumnChart.Series --> диаграмма: ChartSeries

но в Code-behind я не смог найти эти 3 элемента управления и просто использовал 2 элемента управления

ClusteredColumnChart --> Серия диаграмм


person Community    schedule 22.09.2018    source источник


Ответы (1)


Вы не можете использовать "{Binding}" в коде.

Вы должны создать привязку, используя

new System.Windows.Data.Binding(...)

см.: https://docs.microsoft.com/en-us/dotnet/api/system.windows.data.binding.-ctor?view=netframework-4.7.2

Обновление: И чтобы ответить на ваш второй вопрос: ‹ диаграмма: ClusteredColumnChart.Series > является атрибутом, а не объектом.

Обновление 2: пример привязки:

var b = new System.Windows.Data.Binding {Source = dt};
series.SetBinding(ChartSeries.ItemsSourceProperty, b);

Или, если вы хотите установить ItemsSource напрямую, просто используйте это без каких-либо привязок:

series.ItemsSource = dt;
person Markus    schedule 22.09.2018
comment
я использовал этот код var b = new Binding() { Source = dt }; источник товара = б; но не работает, ошибка не может преобразовать привязку в IEnumerable - person ; 23.09.2018