WPF datagrid пустая строка внизу

Я привязываю свой datagrid с помощью

//fill datagrid
public DataTable GameData
{
    get
    {
        DataSet ds = new DataSet();
        FileStream fs = new FileStream(IMDB.WebPage.Class.Config.XMLPath,
        FileMode.Open, FileAccess.Read);
        StreamReader reader = new StreamReader(fs, Encoding.Default);
        ds.ReadXml(reader);
        fs.Close();
        DataTable temp = ds.Tables[0];
        return ds.Tables[0];
     }
 }

По какой-то причине я получаю пустую строку внизу. И иногда после нажатия на некоторые кнопки и флажки в сетке добавляются более пустые строки.

Почему это? И как я блокирую это?

Ответ 1

Похоже, что у вас, вероятно, CanUserAddRows установлено значение true для DataGrid. Просто добавьте

CanUserAddRows="false"

для XAML.

Ответ 2

Если ваша резервная коллекция, реализующая IEditableCollectionView, возвращает true из своего метода CanAddNew, DataGrid предположит, что это то, что вы хотите сделать.

Здесь есть хороший обзор: Обзор функций редактирования в DataGrid WPF

Ответ 3

Он также работает с атрибутом:

IsReadOnly="true"

Ответ 4

Если вы создаете DataGrid на лету через исходный код...

DataGrid grid = new DataGrid();

grid.CanUserAddRows = false;

//... 
grid.AutoGenerateColumns = false;
grid.Margin = new Thickness(10,20,10,10);
grid.VerticalAlignment = VerticalAlignment.Top;
grid.ItemsSource = //... and so on