Добавление строк в DataGrid старомодным способом (без привязки)

Я хотел бы программно добавить строки в DataGrid старомодным способом. У меня есть очень быстрая форма, которую я хотел бы добавить вместе с парой DataGrids, и я пытаюсь добавить в них строки. Я не хочу использовать шаблон привязки MVVM в этой единственной ситуации, потому что я хочу сохранить строки кода на низком уровне.

Я попробовал это, но это не работает для меня:

private static void FillGrid(DataGrid grid, IEnumerable<decimal> values)
{
    foreach (var item in values)
    {
        grid.Items.Add(item);
    }
}

Сетка данных заканчивается очень маленькими строками без данных. Похоже на это изображение. Я также попытался обернуть свои значения в классе и добавить объекты этого класса в DataGrid, но я получил тот же результат. Вот этот код:

private class MyClass { public decimal MyDecimal { get; set; } }
private static void FillGrid(DataGrid grid, IEnumerable<decimal> values)
{
    foreach (var item in values)
    {
        grid.Items.Add(new MyClass() { MyDecimal = item });
    }
}

У меня гораздо больше опыта работы с Windows Forms. Я считаю связывание MVVM утомительным, чрезмерно сложным и трудным для отладки. Как мне заставить этот код работать?

1 ответ

Решение

Ваш код работает, но вы должны сказать DataGrid что делать с данными.

<DataGrid>
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding}" />
    </DataGrid.Columns>
</DataGrid>

К сожалению, я не нашел более короткий путь без привязки.

Другие вопросы по тегам