WPF datagrid порожній рядок внизу


201

Я зв’язую свою мережу даних за допомогою

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

Чомусь я отримую порожній рядок внизу. І іноді після натискання на деякі кнопки та прапорці в сітці додаються ще порожні рядки.

Чому це? І як я блокую це?

Відповіді:


447

Здається, що ви, мабуть, CanUserAddRowsвстановили значення TrueGrid. Просто додайте

CanUserAddRows="false"

до XAML.


13
майте на увазі, що навіть якщо прапорець у властивостях сітки не встановлений, вам потрібно явно додати цей рядок коду, щоб приховати додатковий рядок (або встановити та зняти прапорець)
Tobias Valinski

6
Якщо ви не хочете коду позаду, додайте атрибут CanUserAddRows = "Неправильно". Це виглядає як помилка в WPF, що ви повинні встановити це на явну помилку.
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.