Пустая строка таблицы данных WPF внизу


202

Я связываю свою сетку данных, используя

//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];
     }
 }

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

Почему это? И как мне это заблокировать?

Ответы:


448

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

CanUserAddRows="false"

в XAML.


13
имейте в виду, что даже если флажок в свойствах сетки не установлен, вы должны явно добавить эту строку кода, чтобы скрыть дополнительную строку (или установить и снять флажок)
Тобиас Валински,

6
Если вам не нужен код, добавьте атрибут CanUserAddRows = "False". Похоже на ошибку в WPF, которую вы должны явно установить в false.
ZZZ

У меня скорее противоположная проблема. Это не создает пустую строку, хотя я бы предпочел этого.
Шимми Вейцхандлер

21

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

IsReadOnly="true"

Это работало лучше, чем CanUserAddRows и CanUserDeleteRows
RDV


3

Если вы создаете 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

0

Хотя ОП спрашивал, как УДАЛИТЬ пустую строку, заголовок не является конкретным, и эта статья появилась в моем поиске, пытаясь выяснить, как ДОБАВИТЬ пустую строку. Я обнаружил, что для появления пустой строки требуется не только иметь, CanUserAddRows="True"но и ItemsSourceиметь конструктор по умолчанию public MyClass () { }.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.