DataGrid WPF C#

116
12 июля 2021, 17:00

Как в WPF DataGrid добавлять динамически строки и колонки. Затем вручную вводить данные на форме, считывать их и выводить в другой DataGrid??

public partial class MainWindow : Window, INotifyPropertyChanged
{
    public int M { get; private set; }
    public int N { get; private set; }
    public DataTable dt;
    public MainWindow()
    {
        InitializeComponent();
        this.MatrixSize_1 = Enumerable.Range(1, 10).ToArray();
        this.MatrixSize_2 = Enumerable.Range(1, 10).ToArray();
        this.DataContext = this;
    }
    public IList MatrixSize_1 { get; private set; }
    public IList MatrixSize_2 { get; private set; }
    public object Matrix { get; set; }
    public event PropertyChangedEventHandler PropertyChanged = delegate { };
    private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        M= (int)e.AddedItems[0];
    }
    private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
    {
        N = (int)e.AddedItems[0];
        this.UpdateMatrix(M,N);
        this.Matric.Width = M * 23.1;
    }
    void UpdateMatrix(int M,int N)
    {
        dt = new DataTable();
        for (var i = 0; i < M; i++)
            dt.Columns.Add(new DataColumn("c" + i, typeof(double)));
        for (var i = 0; i < N; i++)
        {
            var r = dt.NewRow();
            for (int c = 0; c < M; c++)
                r[c] = c;
            dt.Rows.Add(r);
        }
        this.Matrix = dt.DefaultView;
        PropertyChanged(this, new PropertyChangedEventArgs("Matrix"));
    }

У меня скомпилилось нужное количество столбцов и строк. Теперь Я на форме ввел значения в ячейки и как эти значения достать из DataGrid??

Answer 1

Давайте по-порядку:

Динамическое добавление строк и колонок

Похожий вопрос задавался в англо-язычной версии и, если нет проблем с переводом, то вот ссылка.

Перенос данных из одного DataGrid в другой

Если не ошибаюсь, чтобы назначить данные из одного DataGrid другому, достаточно указать тот же самый источник DataSource другому DataGrid. Опять же, есть ответ на английской версии, попробуйте.

Рекомендация по считыванию размеров матрицы

Вместо TextBox лучше воспользоваться NumericUpDown, он изначально работает только с целыми значениями и Вы можете установить диапазон значений для размеров матрицы.

READ ALSO
Хранение данных объектов в C#, что выбрать? [закрыт]

Хранение данных объектов в C#, что выбрать? [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

101
Публикация exe файлов ClickOnce c#

Публикация exe файлов ClickOnce c#

Возникла проблема с ClickOnce, а именно:

89
Обновление текста в метке

Обновление текста в метке

Имеется успешно объявленный и работающий stepper, а также метка

109
Какой код выполняется в GetHashCode для созданного мной класса?

Какой код выполняется в GetHashCode для созданного мной класса?

Пришлите, пожалуйста, ссылку на исходный кодnet framework, где работает GetHashCode для объявленного мной класса

105