Migliora gestione visualizzazione latenza asta

- Modificato il binding della colonna "Latenza" in `AuctionMonitorControl.xaml` per utilizzare la nuova proprietà `LatencyDisplay`.
- Aggiunta la proprietà `LatencyDisplay` in `AuctionViewModel.cs` per calcolare dinamicamente la latenza in base allo stato dell'asta.
- Aggiunte notifiche di cambiamento per `LatencyDisplay` per aggiornare correttamente l'interfaccia utente.
- Documentata la proprietà `LatencyDisplay` con commenti XML per migliorarne la comprensione.
This commit is contained in:
2025-11-27 12:42:20 +01:00
parent b810c7f76b
commit d08e54657a
2 changed files with 27 additions and 1 deletions

View File

@@ -273,7 +273,7 @@
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding AuctionId}" Width="90"/> <DataGridTextColumn Header="ID" Binding="{Binding AuctionId}" Width="90"/>
<DataGridTextColumn Header="Asta" Binding="{Binding Name}" Width="2*"/> <DataGridTextColumn Header="Asta" Binding="{Binding Name}" Width="2*"/>
<DataGridTextColumn Header="Latenza" Binding="{Binding AuctionInfo.PollingLatencyMs}" Width="70"/> <DataGridTextColumn Header="Latenza" Binding="{Binding LatencyDisplay}" Width="70"/>
<DataGridTextColumn Header="Stato" Binding="{Binding StatusDisplay}" Width="100"/> <DataGridTextColumn Header="Stato" Binding="{Binding StatusDisplay}" Width="100"/>
<DataGridTextColumn Header="Timer" Binding="{Binding TimerDisplay}" Width="90"/> <DataGridTextColumn Header="Timer" Binding="{Binding TimerDisplay}" Width="90"/>
<DataGridTextColumn Header="Prezzo" Binding="{Binding PriceDisplay}" Width="70"/> <DataGridTextColumn Header="Prezzo" Binding="{Binding PriceDisplay}" Width="70"/>

View File

@@ -301,6 +301,30 @@ namespace AutoBidder.ViewModels
public bool IsMyBid => _lastState?.IsMyBid ?? false; public bool IsMyBid => _lastState?.IsMyBid ?? false;
/// <summary>
/// Latenza polling - mostra "-" se l'asta non è attiva/monitorata
/// </summary>
public string LatencyDisplay
{
get
{
// Se non attiva o in pausa/terminata, mostra "-"
if (!IsActive || _lastState == null)
return "-";
// Se terminata, mostra "-"
if (_lastState.Status == AuctionStatus.EndedWon ||
_lastState.Status == AuctionStatus.EndedLost ||
_lastState.Status == AuctionStatus.Closed)
return "-";
// Altrimenti mostra la latenza
return _auctionInfo.PollingLatencyMs > 0
? _auctionInfo.PollingLatencyMs.ToString()
: "-";
}
}
public string StatusDisplay public string StatusDisplay
{ {
get get
@@ -359,6 +383,7 @@ namespace AutoBidder.ViewModels
OnPropertyChanged(nameof(StatusDisplay)); OnPropertyChanged(nameof(StatusDisplay));
OnPropertyChanged(nameof(Strategy)); OnPropertyChanged(nameof(Strategy));
OnPropertyChanged(nameof(MyClicks)); OnPropertyChanged(nameof(MyClicks));
OnPropertyChanged(nameof(LatencyDisplay)); // ? AGGIUNTO
OnPropertyChanged(nameof(AuctionInfo)); // For PollingLatencyMs OnPropertyChanged(nameof(AuctionInfo)); // For PollingLatencyMs
} }
@@ -398,6 +423,7 @@ namespace AutoBidder.ViewModels
OnPropertyChanged(nameof(CanPause)); OnPropertyChanged(nameof(CanPause));
OnPropertyChanged(nameof(CanStop)); OnPropertyChanged(nameof(CanStop));
OnPropertyChanged(nameof(CanBid)); OnPropertyChanged(nameof(CanBid));
OnPropertyChanged(nameof(LatencyDisplay)); // ? AGGIUNTO - latenza cambia quando si attiva/disattiva
} }
public event PropertyChangedEventHandler? PropertyChanged; public event PropertyChangedEventHandler? PropertyChanged;