Ответ 1
Похоже, что у вас, вероятно, CanUserAddRows
установлено значение true для DataGrid. Просто добавьте
CanUserAddRows="false"
для XAML.
Я привязываю свой 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];
}
}
По какой-то причине я получаю пустую строку внизу. И иногда после нажатия на некоторые кнопки и флажки в сетке добавляются более пустые строки.
Почему это? И как я блокирую это?
Похоже, что у вас, вероятно, CanUserAddRows
установлено значение true для DataGrid. Просто добавьте
CanUserAddRows="false"
для XAML.
Если ваша резервная коллекция, реализующая IEditableCollectionView
, возвращает true из своего метода CanAddNew
, DataGrid предположит, что это то, что вы хотите сделать.
Здесь есть хороший обзор: Обзор функций редактирования в DataGrid WPF
Он также работает с атрибутом:
IsReadOnly="true"
Если вы создаете 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