私は新しい仕事でトレーニングプロジェクトを持っており、非常に小さいですが重大な挫折があります。
xmlファイルから読み取ったデータセットにバインドされたdatagridviewコントロールがあります。アイテム、価格、カロリーの3つの列があります。価格とカロリーの平均値を計算し、xmlから読み込まれたエントリの下の行に配置することになっています。これは問題なく機能しますが、一番下の行に平均を入力すると、行はコミットされないままになり、ユーザーが行を選択すると、値が表示されなくなります。行にエントリを手動で入力すると、期待どおりにコミットされ、コミットされていない新しい行が表示されます。プログラムで一番下の行に配置された計算エントリから同じ動作を取得するにはどうすればよいですか?dgviewはデータにバインドされているため、dgview.rows.addなどを実行することはできません。私の行くことは基本的にこのようになります:
Private Sub PopulateDGView(ByVal sFilePath As String)
Dim dgview As New DataGridView
Dim ds As New dataset
Dim dPriceAvg As Double = 0
Dim dCaloriesAvg As Double = 0
ds.readxml(sFilePath)
dgview.datasource = ds
dgview.DataMember = "food"
'[Here I loop through the rows, sum the values and divide by the number of rows to get
'the average values for the columns then write the following]
dgview.Rows(dgview.Rows.GetLastRow(DataGridViewElementStates.Displayed)). _
Cells("Item").Value = "Average"
dgview.Rows(dgview.Rows.GetLastRow(DataGridViewElementStates.Displayed)). _
Cells("Price").Value = dPriceAvg.ToString
dgview.Rows(dgview.Rows.GetLastRow(DataGridViewElementStates.Displayed)). _
Cells("Calories").Value = dCaloriesAvg.ToString
End Sub
これにより、コミットされていない行に平均値が配置されます。これは、使用可能な唯一の塗りつぶされていない行です。新しい行が表示されると思いますが、そうではありません。平均的な行はコミットされないままであり、前述したように、行が選択されると行のすべてのデータが消えます。行を強制的にコミットして、その下に新しいコミットされていない行を表示するにはどうすればよいですか?いくつかの追加情報と同様に、microsoft.visualbasicライブラリを使用できません。どんな援助も大歓迎です。前もって感謝します。