2010-07-30 177 views
1

我想了解如何讀取我的WPF datagrid單元格的值。WPF Datagrid讀取單元格值

沿

String myString = myDataGrid.Cells[1][2].ToString(); 

數據網格線的東西已經在XAML中創建和我以

reportGrid.Items.Add(new cbResultRow() { ... }); 

現在我要回去和閱讀細胞填充行數據的數據網格在我的數據網格中的值。

我已經看到了一些從選定的行或單元格讀取數據的例子,我沒有任何選擇(用戶不與數據網格交互)。像

foreach(DataGridRow myrow in myDataGrid.Rows) 

我也看到代碼但是編譯器說,行不DataGrid中的一員。

我已經搜索了幾個小時,試圖找出如何做我會認爲是一件非常簡單的事情!

請大家幫忙,

感謝, 意志。

回答

2

WPF數據網格被構建爲綁定到類似DataTable的東西。大多數情況下,您將修改DataTable以及綁定到DataGrid的DataTable中的行/列。

DataGrid本身是DataTable的可視元素。 Here is a pretty good tutorial on how to do this。修改循環內的數據看起來像這樣。

foreach(DataRow row in myTable.Rows) 
{ 
    row["ColumnTitle"] = 1; 
} 

這隻會使列中所有值「ColumnTitle」等於1.要訪問一個單細胞會是這個樣子。

myTable.Rows[0][0] = 1; 

這會在你的DataTable中的第一個單元格設置爲1

+0

感謝您的答覆,我已經做到了與第一次創建列表(因爲沒有數據表)建議的方式類似,並綁定數據清單,但我真的想知道是否有方法直接從數據網格訪問單元格數據。 – dontpanic 2010-07-30 05:24:31

+0

@dontpanic沒有。在將來,您會發現List和DataTable不兼容。我甚至更喜歡List上的ObservableCollection。 – jsmith 2010-07-30 13:21:33

2

這可能幫助別人。

foreach (DataRowView row in dgLista.SelectedItems) 
{ 
    string text = row.Row.ItemArray[index].ToString(); 
} 

祝你好運!

+1

好主意。請注意:只有在最基本的情況下,您的數據源爲DataView,DataGrid以相同的順序顯示數據源的所有列,即1對1映射爲用過的。 – dotNET 2016-10-18 05:49:00

0

下面是解決方案的摘要。

WinForm的

類型:System.windows.Forms.DataGridView

// C# 
foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    //"Column1" = column name in DataGridView 
    string text = row.Cells["Column1"].value.ToString(); 
} 

WPF相當於

類型:數據網格

// C# 
foreach (DataRowView row in dataGrid.Items) 
{ 
    string text = row.Row.ItemArray[index].ToString(); 
}