私の WinForms アプリケーションでは、ボタンを押すと次のロジックがトリガーされます。
private void ExecuteSelectedConsoleCommand()
{
var commandsRow = GetCommandsRow();
var consoleCommand = GetConsoleCommand(commandsRow);
Task.Factory.StartNew(() =>
{
var runningCommandRow =
runtimeDataSet.RunningCommands.AddRunningCommandsRow(Guid.NewGuid(),
consoleCommand.OneLineDescription);
consoleCommand.Run(null);
runningCommandRow.Delete();
});
}
BindingSource は、DataGridView が自動的に更新されるようにするために使用されます。
今のところ、次のハックがなければ、「インデックス 0 は無効です」というエラーが表示されます。
// prevents error when removing last row from data bound datagridview
var placeholder = runtimeDataSet
.RunningCommands
.AddRunningCommandsRow(Guid.NewGuid(), "PLACEHOLDER");
上記のコードでは、DataGridView に少なくとも 1 つの行が常に存在するようになり、正常に動作します。
これを修正するにはどうすればよいですか?
注: これは、他の多くの人が遭遇したことのように思えますが、私の Web 検索は失敗しました..