Datagrid baris kosong WPF di bagian bawah


202

Saya mengikat datagrid saya menggunakan

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

Untuk beberapa alasan saya mendapatkan baris kosong di bagian bawah. Dan kadang-kadang setelah mengklik beberapa tombol dan kotak centang di grid, lebih banyak baris kosong ditambahkan.

Kenapa ini? Dan bagaimana saya memblokir ini?

Jawaban:


448

Kedengarannya seperti Anda mungkin telah CanUserAddRowsmengatur true untuk DataGrid. Cukup tambahkan

CanUserAddRows="false"

ke XAML.


13
Ingatlah bahwa meskipun kotak centang di properti grid tidak dicentang, Anda harus menambahkan baris kode secara eksplisit untuk menyembunyikan baris tambahan (atau centang dan hapus centang kotak centang)
Tobias Valinski

6
Jika Anda tidak ingin kode di belakang, tambahkan atribut CanUserAddRows = "False". Sepertinya ada bug di WPF yang harus Anda setel ke false secara eksplisit.
ZZZ

Saya lebih suka memiliki masalah sebaliknya. Itu tidak membuat baris kosong, sementara saya lebih suka itu.
Shimmy Weitzhandler

21

Ini juga berfungsi dengan atribut:

IsReadOnly="true"

Ini bekerja lebih baik daripada CanUserAddRows & CanUserDeleteRows
RDV


3

Jika Anda membuat DataGrid saat bepergian melalui Source Code ...

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

Meskipun OP bertanya bagaimana MEMINDAHKAN baris yang kosong, judulnya tidak spesifik, dan artikel ini muncul dalam pencarian saya sambil mencoba mencari cara untuk menambahkan baris yang kosong. Saya menemukan bahwa, agar baris kosong muncul, tidak hanya perlu memiliki CanUserAddRows="True"tetapi ItemsSourcekebutuhan untuk memiliki konstruktor default public MyClass () { }.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.