WPF datagrid hàng trống ở phía dưới


201

Tôi liên kết dữ liệu của mình bằng cách sử dụng

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

Vì một số lý do tôi nhận được một hàng trống ở phía dưới. Và đôi khi sau khi nhấp vào một số nút và hộp kiểm trong lưới, nhiều hàng trống hơn được thêm vào.

Tại sao lại thế này? Và làm thế nào để tôi chặn điều này?

Câu trả lời:


447

Âm thanh như bạn có thể đã CanUserAddRowsđược đặt thành đúng cho DataGrid. Chỉ cần thêm

CanUserAddRows="false"

đến XAML.


13
Hãy nhớ rằng ngay cả khi hộp kiểm trong thuộc tính của lưới bị bỏ chọn, bạn phải thêm rõ ràng dòng mã đó để ẩn hàng bổ sung (hoặc đánh dấu và bỏ chọn hộp kiểm)
Tobias Valinski

6
Nếu bạn không muốn mã phía sau, hãy thêm thuộc tính CanUserAddRows = "Sai". Có vẻ như một lỗi trong WPF mà bạn phải đặt nó thành sai một cách rõ ràng.
ZZZ

Tôi có vấn đề ngược lại. Nó không tạo ra một hàng trống, trong khi tôi muốn điều đó hơn.
Shimmy Weitzhandler

21

Nó cũng hoạt động với thuộc tính:

IsReadOnly="true"

Điều này hoạt động tốt hơn CanUserAddRows & CanUserDeleteRows
RDV


3

Nếu bạn đang tạo DataGrid một cách nhanh chóng thông qua Mã nguồn ...

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

Mặc dù OP đã hỏi làm thế nào để XÓA hàng trống, tiêu đề không cụ thể và bài viết này xuất hiện trong tìm kiếm của tôi trong khi cố gắng tìm ra cách THÊM hàng trống. Tôi thấy rằng, để hàng trống xuất hiện, nó không chỉ cần có CanUserAddRows="True"mà còn ItemsSourcecần phải có một hàm tạo mặc định public MyClass () { }.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.