From e81aa73669d86909a3139c581b3c9ad5d85d96d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D1=8B=D1=82=D0=BA=D0=BE=D0=B2=20=D0=A0=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD?= Date: Mon, 30 Mar 2026 18:19:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B2=D1=8B=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=B0=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=20=D0=BF=D1=80=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D1=89=D0=B5=D0=BD=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Minint/ViewModels/EditorViewModel.cs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Minint/ViewModels/EditorViewModel.cs b/Minint/ViewModels/EditorViewModel.cs index 5fc3c76..4d3f3ed 100644 --- a/Minint/ViewModels/EditorViewModel.cs +++ b/Minint/ViewModels/EditorViewModel.cs @@ -231,26 +231,34 @@ public partial class EditorViewModel : ViewModelBase private void MoveDocumentUp() { if (Container is null || ActiveDocument is null) return; - int idx = Container.Documents.IndexOf(ActiveDocument); + var doc = ActiveDocument; + int idx = Container.Documents.IndexOf(doc); if (idx <= 0) return; (Container.Documents[idx], Container.Documents[idx - 1]) = (Container.Documents[idx - 1], Container.Documents[idx]); SyncDocumentsList(); - _suppressDocumentSync = true; - ActiveDocument = Container.Documents[idx - 1]; - _suppressDocumentSync = false; + ReselectDocument(doc); } [RelayCommand] private void MoveDocumentDown() { if (Container is null || ActiveDocument is null) return; - int idx = Container.Documents.IndexOf(ActiveDocument); + var doc = ActiveDocument; + int idx = Container.Documents.IndexOf(doc); if (idx < 0 || idx >= Container.Documents.Count - 1) return; (Container.Documents[idx], Container.Documents[idx + 1]) = (Container.Documents[idx + 1], Container.Documents[idx]); SyncDocumentsList(); + ReselectDocument(doc); + } + + private void ReselectDocument(MinintDocument doc) + { + // Force SelectedItem rebinding after list rebuild even when the selected object is the same reference. _suppressDocumentSync = true; - ActiveDocument = Container.Documents[idx + 1]; + ActiveDocument = null; + ActiveDocument = doc; _suppressDocumentSync = false; + SyncLayersAndCanvas(doc); } #endregion