RecordGrid.select-current-record? = true を指定したレコードグリッドで、
レコードを選択した状態でも、
グリッド内の余白の部分をクリックすると、選択状態が解除されてしまいます。
レコードが0件の場合を除いて、
常に1件以上のレコードが選択されている状態にしたいのですが、
どのようにすればよいですか。
「選択が解除されたら選択をしなおす」という方法なら何とか実装できそうです。
もっと良い方法があれば教えてください。
Code:
{let rs:RecordSet =
{RecordSet
{RecordFields
{RecordField "First", domain = String},
{RecordField "Last", domain = String},
{RecordField "Age", domain = int}
},
{RecordData First = "John", Last = "Smith", Age = 25},
{RecordData First = "Jane", Last = "Smith", Age = 29},
{RecordData First = "Jane", Last = "Jones", Age = 28}
}
}
{def grid =
{RecordGrid
select-current-record? = true,
cells-take-focus? = false,
multiple-selection-enabled? = false,
background = "white",
record-source = rs,
||レコードの選択状態を解除しない
{on e:SelectionEvent at grid:RecordGrid do
{if grid.selection.record-count == 0 then
{try
{grid.select-record grid.current-index}
catch e:Exception do
||レコード再設定時等で、選択時にエラーが発生する場合は無視
}
}
}
}
}
{value grid}