using System.Windows; using System.Windows.Controls; using System.Windows.Threading; using System.Linq; using System.Diagnostics; namespace CtrEditor.PopUps { public partial class MatrixPreviewWindow : Window { public MatrixPreviewWindow() { InitializeComponent(); } private void DataGrid_ColumnReordered(object sender, DataGridColumnEventArgs e) { if (DataContext is MatrixPreviewViewModel viewModel) { // Obtener el nuevo orden basado en DisplayIndex var orderedColumns = MatrixPreview.Columns .OrderBy(c => c.DisplayIndex) .ToList(); // Actualizar los números de columna basado en DisplayIndex for (int i = 0; i < orderedColumns.Count; i++) { var column = orderedColumns[i]; var headerParts = column.Header?.ToString().Split(':'); if (headerParts?.Length == 2) { var columnName = headerParts[1]; // Actualizar todos los items que tengan el mismo nombre de columna var itemsToUpdate = viewModel.MatrixItems.Where(x => x.ColumnName == columnName); foreach (var item in itemsToUpdate) { item.ColumnNumber = i + 1; } // Actualizar el header con el nuevo número column.Header = $"{i + 1}:{columnName}"; } } } } } }