Дополнительные столбцы и строки DataGrid

<DataGrid Name="grid"
              HorizontalAlignment="Left"
              VerticalAlignment="Top"
              IsReadOnly="False"
              HeadersVisibility="None"
              AutoGenerateColumns="True"
              AutoGeneratingColumn="c_dataGrid_AutoGeneratingColumn">

public static DataView GetBindable2DArray<T>(this T[,] array)
        {
            DataTable dataTable = new DataTable();
            for (int i = 0; i < array.GetLength(1); i++)
            {
                dataTable.Columns.Add(i.ToString(), typeof(Ref<T>));
            }
            for (int i = 0; i < array.GetLength(0); i++)
            {
                DataRow dataRow = dataTable.NewRow();
                dataTable.Rows.Add(dataRow);
            }
            DataView dataView = new DataView(dataTable);
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    int a = i;
                    int b = j;
                    Ref<T> refT = new Ref<T>(() => array[a, b], z => { array[a, b] = z; });
                    dataView[i][j] = refT;
                }
            }
            return dataView;
        }

public class Ref<T>
    {
        private readonly Func<T> getter;
        private readonly Action<T> setter;
        public Ref(Func<T> getter, Action<T> setter)
        {
            this.getter = getter;
            this.setter = setter;
        }
        public T Value { get { return getter(); } set { setter(value); } }
    } 

Вот мой код. И я получил этот DataGrid:

enter image description here

Но вот дополнительная строка и столбец. Как показать только мою сетку 5x5 без пустой строки?

Ответ 1

Я предлагаю вам проверить возвращаемые значения GetLength (0) и GetLength (1), чтобы убедиться, что они делают то, что вы ожидаете от них. Кроме того, у меня всегда была одна дополнительная строка (для создания новой строки "на лету" ), когда я использовал Data Grids.

Обновление: Дополнительная строка исчезает, когда вы устанавливаете IsReadOnly на "True" (как я уже сказал, он сделан для редактирования на лету), а дополнительный столбец не является реальным столбцом, это пространство заголовка строки, показанное справа. Он исчезает при установке HeadersVisibility на "All" или "Row".