2016-08-25 41 views

回答

2

您可以使用這些選項:

  • 創建計算列的DataTable
  • 處理的DataGridView

的CellFormatting事件創建只讀屬性爲DataTable創建計算列

如果數據字段屬於DataTable您可以將計算DataColumn添加到您的DataTable並設置其屬性Expression返回基於這兩列所需的值。

table.Columns.Add("DisplayName", GetType(String), "FirstName + ' ' + LastName") 

創建只讀屬性類

如果數據字段屬於一個普通的模型類,你可以添加一個只讀屬性,它在吸氣,返回基於這些2級性能所需的值。

Public Class Person 
    Public Property FirstName As String 
    Public Property LastName As String 
    Public ReadOnly Property DisplayName As String 
     Get 
      Return String.Format("{0} {1}", FirstName, LastName) 
     End Get 
    End Property 
End Class 

使用的DataGridView

的CellFormatting事件對於所有情況下的通用解決方案,您可以使用DataGridViewCellFormatting事件,並根據這兩個字段設置e.Value到所需的值。

Private Sub DataGridView1_CellFormatting(sender As Object, _ 
    e As DataGridViewCellFormattingEventArgs Handles DataGridView1.CellFormatting 
    ' For example you want to do it for 3rd column 
    If e.ColumnIndex = 2 AndAlso e.RowIndex >= 0 Then 
     Dim row = Me.DataGridView1.Rows(e.RowIndex) 
     'If DataSource is a DataTable, DataBoundItem is DataRowView 
     Dim data = DirectCast(row.DataBoundItem, Person) 
     e.Value = String.Format("{0} {1}", data.FirstName, data.LastName) 
    End If 
End Sub 
+0

看來後回答你的問題,如果你接受的答案還是讓我知道,如果您有任何關於回答任何問題,這將是巨大的:) –

相關問題