DataGrid показывает пустую строку, когда DataTable пуст - PullRequest
2 голосов
/ 28 апреля 2011

У меня есть DataGrid ( dg1 ), который связывается с DataTable ( DataSet.Tables ). Код работает нормально и DataGrid правильно показывает данные в DataTable.

Но, если я Clear() DataTable, DataGrid также ясен, но остался с одной пустой строкой, от которой я не знаю, как избавиться. Я уже очистил DataTable. Откуда взялась эта пустая строка?

SqlCeDataAdapter da = new SqlCeDataAdapter();

string sqlStr = @"SELECT * FROM FooTable";
da.SelectCommand = new SqlCeCommand(sqlStr, conn);

da.Fill(ds, "FooTable");

/* get data table reference */
dt = ds.Tables["FooTable"];

DataRow newRow = dt.NewRow();
newRow["FooName"] = "Donkey";
dt.Rows.Add(newRow);

dg1.ItemsSource = ds.Tables[0].DefaultView;
dt.Clear();

enter image description here

Ответы [ 3 ]

6 голосов
/ 28 апреля 2011

Эта строка обычно является держателем NewItemPlace, который используется для создания новых элементов в связанной коллекции. Попробуйте установить CanUserAddRows на false.

1 голос
/ 28 апреля 2011

Отображаемая пустая строка, вероятно, вызвана тем, что по умолчанию в сетке данных пустая строка находится в последней, чтобы пользователь мог добавить новую строку. попробуй сделать dataGridView1.AllowUserToAddRows = false;

0 голосов
/ 28 апреля 2011

@ Abdul Muqtadir: правильное объяснение.

Приведенный ниже код сделает то, что вы ищете:

   dataGridView1.AllowUserToAddRows = false;
   dataGridView1.DataSource = null;

для Datagrid, вы должны установить DataGrid.CanUserAddRows в false;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...