Simplify row selection logic in EnvelopeSenderPage

Refactored row selection logic to leverage DevExpress's native
`@bind-SelectedDataItem` for automatic updates to the
`_selectedEnvelope` variable. Added `AllowSelectRowByClick`
to enable row selection via single click. Updated event
handlers for layout auto-loading and auto-saving to use
specific methods for different grids. Simplified `OnRowClick`
method by removing redundant manual selection logic and
retaining toggle behavior for deselecting the same row.
Updated comments to reflect these changes.
This commit is contained in:
2026-09-21 17:12:35 +02:00
parent ec3a15a467
commit a0bfd405f0

View File

@@ -187,7 +187,9 @@
PageSize="20"
PagerVisible="true"
SelectionMode="GridSelectionMode.Single"
AllowSelectRowByClick="true"
SelectedDataItem="@_selectedEnvelope"
SelectedDataItemChanged="@((object o) => _selectedEnvelope = o as EnvelopeDto)"
RowClick="OnRowClick"
RowDoubleClick="OnRowDoubleClick"
CustomizeElement="OnCustomizeElement"
@@ -306,7 +308,9 @@
PageSize="20"
PagerVisible="true"
SelectionMode="GridSelectionMode.Single"
AllowSelectRowByClick="true"
SelectedDataItem="@_selectedEnvelope"
SelectedDataItemChanged="@((object o) => _selectedEnvelope = o as EnvelopeDto)"
RowClick="OnRowClick"
RowDoubleClick="OnRowDoubleClick"
CustomizeElement="OnCustomizeElement"
@@ -573,7 +577,8 @@
// Future: Add custom row coloring based on status if needed
}
// Single click: select row, or deselect if already selected (toggle)
// Single click: native DX selection handles the UI instantly.
// We only manage toggle: if the same row is clicked again, deselect.
void OnRowClick(GridRowClickEventArgs e)
{
var clicked = e.Grid.GetDataItem(e.VisibleIndex) as EnvelopeDto;
@@ -581,16 +586,11 @@
if (_selectedEnvelope?.Id == clicked.Id)
{
// Already selected → deselect
// Same row clicked again → deselect
_selectedEnvelope = null;
e.Grid.DeselectDataItem(clicked);
}
else
{
// New row → select
_selectedEnvelope = clicked;
e.Grid.SelectDataItem(clicked);
}
// Different row: @bind-SelectedDataItem already updated _selectedEnvelope
}
// Double-click: select the row and open preview popup