2012-05-18 153 views
6

我有很多麻煩讓我的數據綁定正確。我已經閱讀了大多數有類似問題的人的帖子,但由於某些原因,我無法點擊它。將ObservableCollection綁定到ListView

我的表中的XML是:

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

在我的代碼有:

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

} 

在嘗試更新我用的是表:

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

新項目似乎得到正確添加,但沒有更新listView。

我有這樣的教程,通過閱讀:http://www.switchonthecode.com/tutorials/wpf-tutorial-using-the-listview-part-1

我試圖將所有的建議中其他職位的通知代碼。沒有什麼是爲我工作的。

和想法將不勝感激。

+0

您是否在運行時檢查了VS中的輸出窗口?有沒有任何綁定錯誤?你在哪裏爲整個視圖設置'DataContext'? – nemesv

+0

哦,它是標記中的DataContext =「{Binding RelativeSource = {RelativeSource Self}}」。 –

回答

13

而不是DataContext="{Binding DocumentList}"嘗試ItemsSource="{Binding DocumentList}"

+0

這與@nemesv提出的標記中缺少的DataContext結合解決了它。謝謝。 –

+0

對他的答案進行投票並接受它,@NathanTornquist。我們愛這裏的巴甫洛夫反饋。 – Yatrix

+0

它不會讓我接受它。他回答得太快了。別擔心,我會照顧它的。 –

相關問題