2009-08-26 37 views
7

Tôi có một DataGrid. Tôi muốn một cột hiển thị chỉ đơn giản là 1 2 3 4 ... trong các hàng, lên đến nhiều hàng như tôi đã được tạo ra từ các ràng buộc dữ liệu khác của tôi.Số hàng mã vạch của WPF

<dg:DataGridTextColumn Header="#" IsReadOnly="True" 
              Binding="...."   /> 
+0

Tôi tìm thấy câu trả lời dưới dạng thuộc tính cho bảng dữ liệu để hiển thị cột số hàng đầu. Tôi quên thuộc tính thực sự. –

+4

Bạn quên không ?? Đó là loại vô dụng. Bạn không thể chỉ mất một giây để xem chương trình của bạn? – JohnB

Trả lời

3

Tôi đã dành nhiều thời gian để xem tài liệu MSDN và các chủ đề khác cho câu trả lời này. Cách tôi đã giải quyết trên thực hiện điều này là ràng buộc một tài sản (mà tôi tạo ra) đặc biệt cho số dòng trong các đối tượng trong bộ sưu tập mà các DataGrid là ràng buộc với. ví dụ.

public class myItem 
{ 
    public int LineNumber { get; set; } 
    // rest of your object... 
} 

Bạn sẽ phải tự đặt số dòng trong chính đối tượng.

Một cách khác để thêm số dòng có thể được tìm thấy here. Đây là mã:

datagrid.LoadingRow += 
    new EventHandler<DataGridRowEventArgs>(datagrid_LoadingRow); 

... 
void datagrid_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.Header = e.Row.GetIndex(); 
} 

Triển khai này đặt số dòng vào tiêu đề hàng và không yêu cầu bạn đặt thuộc tính chỉ cho số dòng trong đối tượng của bạn. Tuy nhiên, nếu bạn cần chèn hoặc xóa một hàng khỏi datagrid, số dòng sẽ không cập nhật.

+1

Thứ hai không hoạt động. Khi chúng ta cuộn lên và xuống, tất cả các giá trị tiêu đề sẽ bị rối loạn. Điều này là do hành vi nội bộ của DataGrid để cải thiện hiệu suất. – Gopinath

+0

Xem cuộc thảo luận tại: http://stackoverflow.com/questions/4663771/wpf-4-datagrid-getting-the-row-number-into-the-rowheader/4663799#comment14001342_4663799 để biết chi tiết về lý do tại sao điều này có thể hoặc có thể không hoạt động trên các phiên bản khác nhau của DataGrid, dựa trên cài đặt ảo hóa. – Tony

+0

Nếu bạn đang sử dụng MSSQL Server 2005+, bạn có thể thử: http://msdn.microsoft.com/en-us/library/ms186734.aspx – nvcnvn