Как сделать динамически заполняемую таблицу WPF?

Для создания динамически заполняемой таблицы в WPF, нужно использовать элемент управления DataGrid. DataGrid предоставляет мощные возможности для отображения данных в виде таблицы и автоматического обновления таблицы при изменении источника данных.

Вот пошаговая инструкция по созданию динамически заполняемой таблицы WPF:

1. Создайте новое WPF приложение в Visual Studio и откройте файл MainWindow.xaml.

2. Добавьте следующие using-директивы в раздел using в файле MainWindow.xaml.cs:

using System.Collections.ObjectModel;
using System.ComponentModel;

3. В разметке XAML добавьте элемент управления DataGrid следующим образом:

<DataGrid x:Name="datagrid" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <!-- Здесь добавляется любое число столбцов -->
        <!-- Примеры столбцов: -->
        <!-- <DataGridTextColumn Header="Колонка 1" Binding="{Binding Column1}" /> -->
        <!-- <DataGridTextColumn Header="Колонка 2" Binding="{Binding Column2}" /> -->
    </DataGrid.Columns>
</DataGrid>

4. В коде C# добавьте определение класса для элементов таблицы:

public class TableItem : INotifyPropertyChanged
{
    private string _column1;
    public string Column1
    {
        get { return _column1; }
        set
        {
            _column1 = value;
            NotifyPropertyChanged("Column1");
        }
    }

    private string _column2;
    public string Column2
    {
        get { return _column2; }
        set
        {
            _column2 = value;
            NotifyPropertyChanged("Column2");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

5. В коде C# добавьте метод для заполнения таблицы данными:

private void FillTable()
{
    ObservableCollection<TableItem> tableItems = new ObservableCollection<TableItem>();

    // Здесь можно добавлять объекты TableItem в коллекцию
    // Пример добавления объектов:
    // tableItems.Add(new TableItem { Column1 = "Значение 1", Column2 = "Значение 2" });
    // tableItems.Add(new TableItem { Column1 = "Значение 3", Column2 = "Значение 4" });

    datagrid.ItemsSource = tableItems;
}

6. Добавьте вызов метода FillTable из конструктора класса MainWindow:

public MainWindow()
{
    InitializeComponent();
    FillTable();
}

7. Теперь, когда TableItem добавляются в коллекцию tableItems, они автоматически отображаются в таблице DataGrid. Также изменения значений в столбцах таблицы будут автоматически обновляться.

Теперь у вас есть динамически заполняемая таблица в вашем WPF приложении. Вы можете добавлять и удалять элементы таблицы, а также изменять значения в столбцах, и все изменения будут отображаться в реальном времени в таблице.