私はReadOnly DataGridViewをbindingSourceにバインドしています。 DataGridViewCellを更新するフォームには、他のコントロールがあります。これらのコントロールはバインディングソースにバインドされています。私はdatagridviewCellのスタイルを元のDataViewRowStateに基づいて変更する必要があります - .Currentは私を助けません - 私は何をする必要があるトラックは、元の値をセルです - セルの正常な色、 。私は取得しているバージョンのDataRowViewStateを得ることができることを知っています - しかし、それは常に最新のものになります(デフォルトであるので)。そして、現在のものが必要です - 私はそれがオリジナルと異なるかどうかを知りたいこの特定の列。バインディングソースの私の編集ではすでに行があるので、この行が元の、または変更されたという簡単なメソッドまたはプロパティではないようです。私は行を取得し、結果を得るかどうかを確認するためにテーブル上のfilterstatesを使用してselectを実行する必要がありますか?そうしたければ、これを行うにはセルを変更しますか?DataViewRowStateを使用してDataGridViewCellにスタイルを割り当てる
関連するコード:VB.netであることは知っていますが、C#の例があれば気にしません.netコードはコードであり、変換できます。
Private Sub UpdateCellValue(columnName As String, textValue As String)
If dgvBayList.SelectedRows.Count > 0 Then
Dim crow As DataGridViewRow = dgvBayList.SelectedRows(0)
Dim drv As DataRowView = DirectCast(bsBins.Current, DataRowView)
If crow.Cells(columnName).Value = textValue Then
Exit Sub
End If
drv.BeginEdit()
drv.Row.BeginEdit()
drv.Row.SetField(Of String)(columnName, textValue)
' My Problem here is of course it is always original,
' the row states of the Row always show Modified.
' This happens when the binding source gets filled and bound to datagridview.
Select Case drv.RowVersion
Case DataRowVersion.Original
Dim val As String = drv.Row(0).ToString()
Exit Select
Case DataRowVersion.Proposed
Dim val As String = drv.Row(0).ToString()
Exit Select
Case DataRowVersion.Current
Dim val As String = drv.Row(0).ToString()
Exit Select
Case DataRowVersion.Default
Dim val As String = drv.Row(0).ToString()
Exit Select
End Select
crow.Cells(columnName).Value = textValue
drv.Row.EndEdit()
drv.EndEdit()
Dim dt As DataTable = sortingDataSet.bins
End If
End Sub
を助けた関連リンクこの
のようにそれを呼び出します.RowVersion – Steve
@Steve私のRowStateは常に変更されています修正前でもなぜこのようなものなのか分かりません。バインディングソースは、フォームloadで埋められるdataset.Tableにバインドされています。それはいつも変更をget goから宣言しているので、それは私を助けません。また、ユーザーがオリジナルに戻したかどうかを知る必要があります。通常の変更されていないセルのように見えます。私はrowfilterを使用して選択する必要があると思っています - より簡単な方法が必要です。私は1つがあることを願う。 – Ken
セルの書式設定イベントで 'RowState'を見ると、うまく動作します。 – Plutonix