как создать элемент управления диаграммы в коде за wpf - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть элемент управления диаграммой в 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 элемента управления находятся внутри друг друга

chart: ClusteredColumnChart -> chart: ClusteredColumnChart.Series ->chart: ChartSeries

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

ClusteredColumnChart -> ChartSeries

1 Ответ

0 голосов
/ 22 сентября 2018

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

Необходимо создать привязку, используя

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

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

Обновление: и ответить на второй вопрос: isатрибут не объект.

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

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

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

series.ItemsSource = dt;
...