Siatka danych WPF pusty wiersz na dole


201

Wiążę mój datagrid za pomocą

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

Z jakiegoś powodu dostaję pusty wiersz na dole. A czasami po kliknięciu niektórych przycisków i pól wyboru w siatce dodaje się więcej pustych wierszy.

Dlaczego to? I jak to zablokować?

Odpowiedzi:


447

Wygląda na to, że prawdopodobnie CanUserAddRowsustawiłeś wartość true dla DataGrid. Poprostu dodaj

CanUserAddRows="false"

do XAML.


13
pamiętaj, że nawet jeśli pole wyboru we właściwościach siatki nie jest zaznaczone, musisz jawnie dodać ten wiersz kodu, aby ukryć dodatkowy wiersz (lub zaznaczyć i odznaczyć pole wyboru)
Tobias Valinski

6
Jeśli nie chcesz kodu z tyłu, dodaj atrybut CanUserAddRows = „False”. Wygląda na błąd w WPF, który musisz jawnie ustawić na false.
ZZZ

Raczej mam odwrotny problem. Nie tworzy pustego wiersza, podczas gdy wolałbym tego.
Shimmy Weitzhandler

21

Działa również z atrybutem:

IsReadOnly="true"

Działa to lepiej niż CanUserAddRows i CanUserDeleteRows
RDV


3

Jeśli tworzysz DataGrid w locie za pomocą kodu źródłowego ...

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

Chociaż OP pytał, jak USUNĄĆ pusty wiersz, tytuł nie jest konkretny, a ten artykuł pojawił się w moich poszukiwaniach, próbując dowiedzieć się, jak DODAĆ pusty wiersz. Odkryłem, że aby pojawił się pusty wiersz, musi on nie tylko mieć, CanUserAddRows="True"ale ItemsSourcemusi mieć domyślnego konstruktora public MyClass () { }.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.