2017-03-21 142 views
4

我想從gridView中的選定行中的單元格中獲取數據,並將其轉換爲另一種形式,然後在textEdit中編輯所選單元格的行,問題是使用從gridview單元格獲取值#

var cacca = this.gridView.getFocusedRow() as PartnersMissing; 
MessageBox.show(cacca.toString()) 

時MessageBox中寫道:Test01.parnersMissing,其中TEST01是項目的名字,我真的不知道爲什麼PartnersMissing是存在的。這段代碼有什麼問題? datagrid具有來自sql數據庫的數據,並使用DevExpress製作。 請不介意的名字來,如果你知道意大利人,我很着急:d

+1

是否有一個原因,你不希望只是啓用編輯gridview本身,而不是將值傳遞給另一種形式,然後編輯它呢? –

+0

您正在將對象轉換爲字符串 – Emily

+0

@ P.Pat我想要自動傳遞該值,因爲它們中有很多,因此,逐個傳遞它們會很煩人,並且由於其他人插入時表格內容可能會增加數據庫中的數據 –

回答

1

當前行可以使用GridView的 GetFocusedRow方法獲得。此方法返回一個對象,其實際的 類型根據數據源確定。

如果您將其與List<PartnersMissing>對象綁定,則您將從GetFocusedRow方法獲得正確的值。如果你想訪問當前行對象的屬性,那麼你可以簡單地做到這一點。

例如:PartnersMissing具有屬性ABC則可以如下訪問:

var cacca = this.gridView.getFocusedRow() as PartnersMissing; 
MessageBox.show(cacca.ABC) 

ToString()方法返回對象不屬於任何屬性值的類型。你只是打印對象的類型而不是訪問對象的屬性。

As Dimitry說,您還可以使用GetFocusedRowCellValue(String)方法訪問特定列值或行'PartnersMissing對象屬性。

+0

謝謝!它解決了我的問題! :d –

1

據我可以從你的代碼中看到,其結果有望因爲cacca.toString()表達式返回類型名稱,這些類型不會覆蓋標準的object.ToString方法。

要展示一些東西有幫助,您應該重寫此方法

class PartnersMissing { 
    public string Name { get; set; } 
    public override string ToString(){ 
     return Name; 
    } 
} 

,或者從你的對象的字段獲得的具體數值:

MessageBox.Show(cacca.Name); 

您還可以獲取對象的字段值直接從gridView:

string name = gridView.GetFocusedRowCellValue("Name");