當我打開我的表單時,我將一堆行添加到綁定到DataGridView的DataSet。後來,當我枚舉DataGridView中的行時,我希望能夠訪問用於填充DataSet但未存儲在DataSet中的一些數據。如何將元數據分配給DataSet/DataGridView對中的一行?
事情是這樣的:
public void OnStartup()
{
foreach (var data in GetData())
{
var row = MyDataSet.MyTable.AddRow(data.Value);
// here's the part where I'm not sure what to do.. ideally:
row.GetDataGridViewRow().Tag = data.Metadata;
}
}
public void LaterOn()
{
foreach (var row in MyDataGridView.GetSelected())
{
var metadata = (Metadata)row.Tag; // or something
...
}
}
什麼是附加一些元數據到DataSet或DataGridView的行的最佳方式是什麼?
由於我已經有了一個DataSet綁定到視圖,我想我寧願堅持。另一個問題是,我不確定在技術上如何訪問帶有DataSet的'Tag'(即我的示例中的GetDataGridViewRow()實際上做了什麼?)。我需要使用剛添加的項目在DGV上進行查找,還是有更簡單的方法? – ladenedge 2012-07-16 19:35:48
對不起,設法忽略了這部分問題,認爲你已經解決了這個問題。是的,你需要做這樣的查找 - 這可能最終會變得緩慢而脆弱,所以我建議用更多的自定義對象路由。你從GetData()返回的類型是什麼? – 2012-07-16 19:57:40
這只是一個自定義的POCO。我同意lookup似乎kludgey,所以我會給'BindingList'一槍。 –
ladenedge
2012-07-16 20:04:10