diff --git a/Tornado3_2026Election/ViewModels/ChannelScheduleViewModel.cs b/Tornado3_2026Election/ViewModels/ChannelScheduleViewModel.cs index 4467e8a..e924ccc 100644 --- a/Tornado3_2026Election/ViewModels/ChannelScheduleViewModel.cs +++ b/Tornado3_2026Election/ViewModels/ChannelScheduleViewModel.cs @@ -1113,6 +1113,17 @@ public sealed class ChannelScheduleViewModel : ObservableObject NotifySelectedFormatDurationStateChanged(); } + public void RefreshSelectedFormatDuration(FormatTemplateDefinition template) + { + if (SelectedFormat is null || + !string.Equals(SelectedFormat.Id, template.Id, StringComparison.Ordinal)) + { + return; + } + + ResetSelectedFormatDurationDraft(); + } + private void NotifySelectedFormatDurationStateChanged() { OnPropertyChanged( diff --git a/Tornado3_2026Election/ViewModels/MainViewModel.cs b/Tornado3_2026Election/ViewModels/MainViewModel.cs index af78511..44f8def 100644 --- a/Tornado3_2026Election/ViewModels/MainViewModel.cs +++ b/Tornado3_2026Election/ViewModels/MainViewModel.cs @@ -1432,6 +1432,7 @@ public sealed class MainViewModel : ObservableObject private void OnCutDurationChanged(FormatTemplateDefinition template) { SyncQueuedCutDurations(template); + RefreshSelectedFormatDurations(template); QueueAutomaticSave(); } @@ -1474,6 +1475,7 @@ public sealed class MainViewModel : ObservableObject { RefreshCutListEntries(template); SyncQueuedCutDurations(template); + RefreshSelectedFormatDurations(template); QueueAutomaticSave(); } } @@ -1487,6 +1489,14 @@ public sealed class MainViewModel : ObservableObject } } + private void RefreshSelectedFormatDurations(FormatTemplateDefinition template) + { + foreach (var channel in Channels) + { + channel.RefreshSelectedFormatDuration(template); + } + } + private void ApplyCutDurations(IReadOnlyDictionary? durations) { if (durations is null || durations.Count == 0)