2011-05-15 64 views
0

我是WPF和c#的新手,並且有一個(可能非常簡單)的問題。WPF應用程序 - 無法顯示數據網格列表中的數據

我正在編寫一個小應用程序,我試圖從數據庫中讀取數據,將其格式化爲列表,並顯示在數據網格中。我調試了它,並且它已經成功地讀取了數據庫,並且所有數據都在列表中(cd_list),但它並沒有將數據傳遞給數據網格。

下面是我XAML

<DataGrid Name="DataGrid" AutoGenerateColumns="false" RowHeaderWidth="0" Width="240" > 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="Name" ></DataGridTextColumn> 
       <DataGridTextColumn Header="Details"></DataGridTextColumn> 
       <DataGridTextColumn Header="Employee"></DataGridTextColumn> 
       <DataGridTextColumn Header="Date"></DataGridTextColumn> 
      </DataGrid.Columns> 
     </DataGrid> 

我的隱藏文件確實InitializeComponent代碼,然後做一些工作來獲取從數據庫中的數據,並把它放在call_detail對象的列表:

public class call_details 
{ 
    public string name; 
    public string details; 
    public string employee; 
    public string date; 

    public call_details() 
    { 
    } 
} 

項目申報表&呼叫詳細對象

public call_details cd_rec = new call_details(); 
    public List<call_details> cd_list = new List<call_details>(); 

記錄添加到

cd_list.Add(cd_rec);   

此步驟完成後的名單,我想給的ItemsSource,這樣的數據將在DataGrid中顯示,並具備以下條件:

DataGrid.ItemsSource = cd_list; 

但它不工作。在GUI中,Datagrid顯示了一個網格,並帶有我期望的正確數量的記錄,但它們全都是空白的。所以我猜測它傳遞了一些信息,而不是實際的數據。 由於是新手,這可能是一個愚蠢的錯誤,但我找不到其他任何東西來幫助我。

有人嗎?

+0

請不要對出現問題的問題做出反覆修改。您可以對代碼中的錯誤做出註釋,但除此之外,無所謂是答案的工作。 – 2011-05-16 00:27:28

回答

6

所有這些字段都需要公開屬性,至少有一個getter(這是綁定系統的要求)。然後你需要綁定到屬性或者只使用自動生成的列。

public string Name { get; private set; } 
<DataGridTextColumn Header="Name" Binding="{Binding Name}" /> 

如果你是新來WPF我強烈建議你閱讀一些articles on MSDN的。例如Data Binding Overview

+0

進行了更改,並且正在獲取數據,但是它是整個數據網格中重複的最後一條記錄。現在需要嘗試和解決這個問題... 和MSDN,我一直在他們的網站cirles去了一段時間...偉大的解釋的概念,但不是很好,給例子 – jhrdn 2011-05-15 23:43:39

+0

如果你得到相同的數據多次,你可能實際上添加了多個相同的對象或一個相同的列表,我從來沒有遇到的情況下,DataGrid會自行生成重複。 – 2011-05-16 00:31:10

+0

是的,我有一個覆蓋整個列表中的所有記錄的問題,現在排序。謝謝! – jhrdn 2011-05-16 01:32:44

相關問題