0

Пытаюсь заполнить массив значениями, введенными в textbox через функцию Split(). В коде понимаю свою ошибку, но не могу придумать способ её обхода, чтобы можно было использовать введенные значения для создания матрицы и вывода ее в DataGrid...

private void Filling_The_Matrix()
    {
        m = int.Parse(mText.Text);
        n = int.Parse(nText.Text);
        int[,] array = new int[m, n];
        string[] matrix1 = new string[int.Parse(MatrixText.Text)]; //Попытка считывания массива из текстбокса (Тут и есть ошибка, ведь я считываю не число, а строку, но как лучше обойти в коде пока не знаю
        for (int i = 0; i < m; i++) //Заполнение массива значениями
        {
            int[] row = matrix1[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(Int32.Parse).ToArray(); 
            for (int j = 0; j < n; j++)
            {
                array[i, j] = row[j];
            }
        }
    Dictionary&lt;int, List&lt;string&gt;&gt; model = new Dictionary&lt;int, List&lt;string&gt;&gt;();

    for (int i = 0; i &lt; m; i++) //Заполнение списка данными, введенными в текстбокс
    {
        List&lt;string&gt; matrix = new List&lt;string&gt;();
        for (int j = 0; j &lt; n; j++)
        {
            matrix.Add(array[i, j].ToString());
        }
        model.Add(i, matrix);
    }
    for (int i = 0; i &lt; m; i++)
    {
        for (int j = 0; j &lt; n; j++)
        {
            // заполнение столбцов грида
            MatrixStart.Columns.Add(new DataGridTextColumn
            {
                Header = j,
                Binding = new Binding(String.Format(&quot;Value[{0}]&quot;, array[i, j]))
            });
        }
        MatrixStart.ItemsSource = model; //Заполнение DataGrid значениями, введенными  в список 
    }

}

  • Почему не используете привязки, а создание UI через код? 2. Почему именно массив, ведь коллекции куда удобней...?
  • – EvgeniyZ Dec 03 '20 at 14:36
  • @EvgeniyZ 1. Признаться Вам честно, во время работы вообще не задумывался над этим... 2. С коллекциями крайне редко работал, поэтому сделал массив в случае с вводом матрицы – Defined123 Dec 03 '20 at 14:48
  • Стоит задуматься, ведь wpf это привязки и xaml, который вы сейчас благополучно обходите стороной, делая костыли. А коллекции, это аналог массивов, только динамичные, им не надо задавать размеры, вы вон уже ведь пользуетесь Dictionary и List.. – EvgeniyZ Dec 03 '20 at 15:20
  • @EvgeniyZ В этом, наверное, и заключается проблема, ибо я в WPF новичок и не знаю всех тонкостей привязки данных, особенно с коллекциями – Defined123 Dec 03 '20 at 15:30
  • А тут вам надо будет поискать, ведь мануалов как грамотно писать WPF проект в интернете (даже тут и даже от меня) полно. – EvgeniyZ Dec 03 '20 at 15:47