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}";
                    }
                }
            }
        }
    }
}
