2012-05-18 10 views
6

Tengo una inmensa cantidad de problemas para hacer que mis datos se vinculen correctamente. He leído la mayoría de las publicaciones aquí de personas con problemas similares, pero por alguna razón no puedo hacer clic.Enlazar una ObservableCollection a un ListView

El XML para mi mesa es:

<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> 

Dentro de mi código que tengo:

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

} 

En un intento de actualizar la tabla de uso:

_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() 
}); 

Nuevos artículos parece que se está agregando correctamente, pero no se actualiza nada en la lista Vista.

He leído a través de tutoriales de esta manera: http://www.switchonthecode.com/tutorials/wpf-tutorial-using-the-listview-part-1

Y he intentado añadir todo el código de notificación que se sugiere en otros puestos. Nada está funcionando para mí.

Y las ideas serían apreciadas.

+0

¿Ha comprobado la ventana de salida en VS durante el tiempo de ejecución? ¿Hay algún error vinculante? ¿Dónde se establece 'DataContext' para toda la vista? – nemesv

+0

Oh, es DataContext = "{Binding RelativeSource = {RelativeSource Self}}" en la etiqueta . –

Respuesta

13

En lugar de DataContext="{Binding DocumentList}" intente ItemsSource="{Binding DocumentList}".

+0

Eso en combinación con el DataContext que faltaba en la etiqueta que @nemesv trajo solucionado. Gracias. –

+0

Vota por su respuesta y acéptala, @NathanTornquist. Nos encanta nuestro feedback pavloviano por aquí. – Yatrix

+0

No me dejaba aceptarlo todavía. Él respondió demasiado rápido. Pero no te preocupes, yo me encargué de eso. –

Cuestiones relacionadas