使用C#.NET 4.5,MS Visual Studio 2012,WPFs。你好,剛剛得到這個代碼來最終工作,它基本上通過行遍歷一個datgrid。比較數據網格中同一行上的兩個單元格
被警告他可能會冒犯所有WPF嚮導!
public IEnumerable<System.Windows.Controls.DataGridRow> GetDataGridRow(System.Windows.Controls.DataGrid grid)
{
var itemsource = grid.ItemsSource as System.Collections.IEnumerable;
paretogrid.UpdateLayout();
if (null == itemsource) yield return null;
foreach (var item in itemsource)
{
var row = grid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; // null?
if (null != row) yield return row;
}
}
private void ShowArrows()
{
var rows = GetDataGridRow(paretogrid); // fetching null?
foreach (DataGridRow r in rows)
{
DataRowView rv = (DataRowView)r.Item;
}
}
所以,你可以看到我遍歷行。現在我想要做的是將列索引2處的單元格值與每個「行」列索引4進行比較,然後如果true或false,則相應地更新第5列。我可以通過它可以讓我去每個細胞的細胞,但不是列迭代我什麼後e.g
foreach (DataGridColumn column in paretogrid.Columns)
因此,它是這樣的:
paretogrid.Columns[2].GetCellContent(something here) as textblock;
Steven如果你已經在'行'我不明白你爲什麼不能檢查行列的值[4],例如它的索引'你熟悉'Quick Watch',你可以使用'row [rowindex] .columns [columnIndex]'來評價數據值,這只是僞代碼的例子 – MethodMan 2013-04-04 14:06:27
是的我正在玩與grid.columns [2] .getcellcontent(..)等遠遠它工作,但轉換不,例如,如果即時通訊比較2整數時,我轉換爲整數32它不能將文本塊轉換爲整數,所以目前試圖看到一種方式。我想過發佈這個問題,看看是否有一種不同的方式,我錯過了這更簡單。 – lemunk 2013-04-04 14:12:27
你需要'轉換TextBlock.Text'而不是對象本身Steve試着這樣做..也可以顯示你如何進行轉換的代碼,對於我或其他人來說,給你正確的語法會更容易。 。+ 1'表示一些積極的努力的方式.. – MethodMan 2013-04-04 14:16:40