2012-05-18 35 views
6

Tôi đang gặp phải một số lượng lớn các sự cố khiến dữ liệu của tôi bị ràng buộc chính xác. Tôi đã đọc hầu hết các bài đăng trên đây từ những người có vấn đề tương tự, nhưng vì một lý do nào đó tôi không thể nhấp vào bài đăng đó.Liên kết một ObservableCollection với một ListView

XML cho bàn của tôi là:

<Window ... DataContext="{Binding RelativeSource={RelativeSource Self}}" > 
... 
<ListView Height="124" HorizontalAlignment="Left" Margin="12,46,0,0" Name="listViewDocuments" VerticalAlignment="Top" Width="Auto" DataContext="{Binding DocumentList}"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Width="160" Header="Description" DisplayMemberBinding="{Binding Description}"/> 
      <GridViewColumn Width="160" Header="Date Filed" DisplayMemberBinding="{Binding DateFiled}"/> 
      <GridViewColumn Width="160" Header="Filed By" DisplayMemberBinding="{Binding UserFiledName}"/> 
      <GridViewColumn Width="150" Header="Page" DisplayMemberBinding="{Binding Pages}"/> 
      <GridViewColumn Width="150" Header="Notes" DisplayMemberBinding="{Binding Notes}"/> 
      <GridViewColumn Width="Auto" Header="" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

Trong mã của tôi tôi có:

public ObservableCollection<Document> _DocumentList = new ObservableCollection<Document>(); 

... 

public ObservableCollection<Document> DocumentList{ get { return _DocumentList; } } 

... 

public class Document 
{ 
    public string Description { get; set; } 
    public string DateFiled { get; set; } 
    public string UserFiledName { get; set; } 
    public string Pages { get; set; } 
    public string Notes { get; set; } 
    public string Tag { get; set; } 

} 

Trong một nỗ lực để cập nhật các bảng tôi sử dụng:

_DocumentList.Add(new Document 
{ 
    Description = dr["Description"].ToString(), 
    DateFiled = dr.GetDateTime(dr.GetOrdinal("DateFiled")).ToShortDateString(), 
    UserFiledName = dr["UserFiledName"].ToString(), 
    Pages = dr.GetInt32(dr.GetOrdinal("Pages")).ToString(), 
    Notes = dr["Notes"].ToString(), 
    Tag = dr["FileID"].ToString() 
}); 

mục mới dường như được thêm chính xác, nhưng không có gì được cập nhật trên listView.

Tôi đã đọc qua hướng dẫn như thế này: http://www.switchonthecode.com/tutorials/wpf-tutorial-using-the-listview-part-1

Và tôi đã cố gắng thêm tất cả các mã thông báo được gợi ý trong bài viết khác. Không có gì làm việc cho tôi.

Và ý tưởng sẽ được đánh giá cao.

+0

Bạn đã kiểm tra cửa sổ Output trong VS trong thời gian chạy? Có bất kỳ lỗi ràng buộc nào không? Bạn đặt 'DataContext' ở chế độ xem toàn bộ ở đâu? – nemesv

+0

Ồ, đó là DataContext = "{Binding RelativeSource = {RelativeSource Self}}" trong thẻ . –

Trả lời

13

Thay vì DataContext="{Binding DocumentList}" hãy thử ItemsSource="{Binding DocumentList}".

+0

Điều đó kết hợp với DataContext bị thiếu trong thẻ mà @nemesv đã giải quyết nó. Cảm ơn. –

+0

Bỏ phiếu cho câu trả lời của mình và chấp nhận câu trả lời, @NathanTornquist. Chúng tôi yêu thích phản hồi của Pavlovian ở đây. – Yatrix

+0

Nó sẽ không cho phép tôi chấp nhận nó. Anh trả lời quá nhanh. Đừng lo lắng, tôi đã chăm sóc nó. –

Các vấn đề liên quan